私は映画の例から始めて反応ネイティブを学んでいます:
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 では明らかにならなかったことを願っています。