我有问题的列表视图不刷新它的数据源,除非我离开页面并回来。我的列表视图是在NavigatorIOS组件内。React本机列表视图不会刷新行编辑
每一篇文章我读了sais刷新数据源与一个新的对象。当我从数据源中删除/添加某些东西时它工作正常,但是当我只想从数据源中编辑一行时,它不刷新视图。
此代码不能正常工作
editMessage(title, message, messageIndex, replyIndex){
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
var newData = [];
newData = this.state.data.slice();
newData[messageIndex].replies[replyIndex].title= title;
newData[messageIndex].replies[replyIndex].message= message;
this.setState({data: newData});
this.setState({dataSource: ds.cloneWithRows(newData)});
},
然而,这样的样本工作正常
removeMessage(index){
console.log(index);
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
var newData = this.state.data;
newData.splice(index, 1);
this.setState({dataSource: ds.cloneWithRows(newData)});
},
编辑:我已经尝试通过值复制,但它仍然无法正常工作。
newData = JSON.parse(JSON.stringify(this.state.data)); newData[messageIndex].replies[replyIndex].title= title; newData[messageIndex].replies[replyIndex].message= message; this.setState({dataSource: ds.cloneWithRows(newData)}); this.setState({data: newData});
我已经尝试'newData = JSON.parse (JSON.stringify(this.state.data));修改this.state.data后,仍然没有改变。我的印象是通过价值复制的代码行 –