web-dev-qa-db-ja.com

React Nativeでのasync / awaitの使用エラー

反応ネイティブでasync/awaitを使用しようとすると、次のエラーが表示されます。

    uncaught error Error: SyntaxError: /Users/senthilsivanath/Documents/MusicTulip/index.ios.js: Unexpected token (50:23)
  48 |   renderScene: function(route,nav) {
  49 |     try {
  50 |          const response = await signIn.isLoggedIn();

私の.babelrcファイルは次のとおりです。

{ "presets": ["react-native", "es2015", "babel-preset-stage-3"] }
50
MusicMan

48行目のasyncキーワードが欠落している可能性があります。

asyncキーワードの前にfunctionキーワードを使用するようにコードを更新します。

renderScene: async function(route, nav) {
    try {
        const response = await signIn.isLoggedIn();
        // ...

または、矢印関数を使用する場合は、asyncキーワードをパラメーターリストの前に置きます。

 renderScene: async (route, nav) => {
        try {
            const response = await signIn.isLoggedIn();

JavaScriptでは、asyncキーワードは、添付されたエンクロージャーがawaitキーワードを使用することをランタイムに警告するデコレーターであるため、常に一緒に使用されます。これが、この構文をasync/await構文と呼ぶ人々の声を聞く理由です。

単に置く:awaitなしではasyncを使用できません。

編集:これをクラス内で宣言する場合は、 構文が正しい

class MusicTulip extends Component {
    async renderContent() {
        const response = await signIn.isLoggedIn();
    }
 }

これが役立つことを願っています!

143
radiovisual