私は今いくつかの提案された解決策がありますが、それらを動作させることはできません。古いアレイのコピーを正しく作成することによってリストビューを更新する際に問題があります。 これまで(:-(作業をdoesntのある)リストビューを再描画いけない私のソリューションリストアをリアクションネイティブで
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
})
}
を私は(選択)プロパティを変更したいです真のインデックスとfalseに他のすべてのオブジェクト(選択)から。 ホープ誰かがクリーンな解決策を探しています。助けることができる。
よろしく
o.id = rowData.idまたはo.id == rowData.id? –
o.id == rowData.id ofcourse :-) – MDK