0
我现在有几个建议的解决方案,但无法让它们工作。通过正确复制旧数组来更新列表视图时遇到问题。 我的解决方案至今(其中不工作:-()不重新呈现列表视图在React Native中更新ListView
const data = [{
id: 1,
selected: true,
}, {
id: 2,
selected: false,
}, {
id: 3,
selected: false,
}]
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
dataSource: ds.cloneWithRows(data),
data: data,
}
更新的行我使用此代码:
_updateRow = (rowData, rowID) => {
let newArray = this.state.data.slice();
newArray.map((o, index) => {
if (o.id = rowData.id){
o.selected = true;
}
else {
o.selected = false;
}
})
this.setState({
dataSource: this.state.dataSource.cloneWithRows(newArray),
data: newArray
})
}
我想换一个属性(选择)从指数为true,所有其他对象(选择)设置为false。 希望有人能帮助。寻找干净的解决方案。
问候
o.id = rowData.id或o.id == rowData.id? –
糟糕。 o.id == rowData.id ofcourse :-) – MDK