我是React Native的新手,對如何正確使用提供的Fetch API感到困惑。何時對React Native Component進行Fetch調用
調用本身(如此處所述:http://facebook.github.io/react-native/docs/network.html)很簡單,我可以註銷一個成功的響應,但是當它呈現數據時,它是未定義的。
我希望我可以定義一個空的'電影'數組,然後通過調用componentDidMount()中的'setState'來替換它,這會觸發重新渲染。這個假設是不正確的?
以下結果的代碼示例中出現以下錯誤:
'undefined is not an object (evaluating 'allRowIDs.length')
在此先感謝您的幫助!
import React, { Component } from 'react';
import { AppRegistry, ListView, Text, View } from 'react-native';
class ReactNativePlayground extends Component {
constructor() {
super();
this.state = {
movies: []
}
}
componentDidMount() {
fetch('https://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
this.setState({
movies: responseJson.movies
})
})
.catch((error) => {
console.error(error);
});
}
render() {
return (
<View>
<Text>test</Text>
<ListView
dataSource={this.state.movies}
renderRow={(row) => <Text>{row.title}</Text>}
/>
</View>
)
}
}
AppRegistry.registerComponent('ReactNativePlayground',() => ReactNativePlayground);
嘗試記錄'this.state.movies ''在你的'render'方法的'return'語句之前查看是否記錄一個數組或者一個對象 –