我有这段代码
componentWillMount() {
return fetch("http://10.0.3.2:8080/all", {
method: "GET",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
}
})
.then(response => response.json())
.then(responseData => {
this.ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2
});
this.setState({
dataSource: this.ds.cloneWithRows(responseData)
});
})
.catch(error => {
console.log("error : " + error);
});
};
它给我带来了api的数据,我已经用console.log(this.state.dataSource)
测试了它,结果是
console.log result
但是当我添加代码时
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData, navi) => this.renderEvent(rowData, this.props.nav)}
/>
我收到此错误 Error
答案 0 :(得分:1)
通过在主要组件中添加一个简单的构造函数来解决此问题吗?我想你会遇到这个问题,因为你在初始渲染时还没有收到数据。像
这样的东西class Test extends Component{
constructor(props){
super(props);
this.state = {
dataSource = [];
}
}
所以当你拥有ListView
时,至少它会从最初开始。
希望这会有所帮助,但如果没有,请查看this article,进一步深入解释这一概念。