1

私は映画の例から始めて反応ネイティブを学んでいます:

https://github.com/facebook/react-native/tree/master/Examples/Movies

映画の例は、iPad Air でうまく機能します。iPhone 5C で実行すると、フェッチ中にアプリがすぐにクラッシュします。

undefined はオブジェクトではありません (「responseData.total」を評価) SearchScreen.js @ 136:0

    fetch(this._urlForQueryAndPage(query, 1))
      .then((response) => response.json())
      .catch((error) => {
        LOADING[query] = false;
        resultsCache.dataForQuery[query] = undefined;

        this.setState({
          dataSource: this.getDataSource([]),
          isLoading: false,
        });
      })
      .then((responseData) => {
        LOADING[query] = false;
        /*  *** Crash originates on following line 136 *** */
        resultsCache.totalForQuery[query] = responseData.total;
        resultsCache.dataForQuery[query] = responseData.movies;
        resultsCache.nextPageNumberForQuery[query] = 2;

        if (this.state.filter !== query) {
          // do not update state if the query is stale
          return;
        }

        this.setState({
          isLoading: false,
          dataSource: this.getDataSource(responseData.movies),
        });
      })
      .done();
  },

フェッチはわかりにくいです。このフェッチの問題は何ですか?

私が懸念しているのは、Android で Movies を実行しようとする前に、テストした 2 番目の iOS デバイスでクラッシュすることです。これがフェッチ コーディングの問題であり、何らかの理由で iPad では明らかにならなかったことを願っています。

4

0 に答える 0