我有問題的列表視圖不刷新它的數據源,除非我離開頁面並回來。我的列表視圖是在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後,仍然沒有改變。我的印象是通過價值複製的代碼行 –