【发布时间】:2016-04-06 20:26:42
【问题描述】:
列表视图无法刷新它的数据源时遇到问题,除非我离开页面并返回。我的列表视图位于 NavigatorIOS 组件内。
我读过的每一篇文章都是用新对象刷新数据源。当我从数据源中删除/添加某些内容时,它可以正常工作,但是当我只想从数据源中编辑一行时,它不会刷新视图。
此代码不起作用
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});
【问题讨论】:
标签: javascript listview react-native