我从 Movies 示例开始学习 react-native:
https://github.com/facebook/react-native/tree/master/Examples/Movies
电影示例在 iPad Air 上运行良好。当在 iPhone 5C 上执行时,该应用程序在 fetch 中迅速崩溃:
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();
},
Fetch 很难理解。这个 fetch 有什么问题?
我担心的是,在我尝试在 Android 上运行 Movies 之前,它在测试的第二台 iOS 设备上崩溃了。我希望这是一个获取编码问题,由于某种未知原因,它没有在 iPad 上显示出来。