1
我有一個嵌套列表:鍵控反應列表帶有動態屬性
- 富
- 酒吧
- 項目
- ...
- 巴茲
- 項
- ...
- 酒吧
- qux
- ...
正在從像數據生成的:
data = {
foo: [{ bar: [{id:12345}, ...], baz: [{id: 23456}, ...}]}, {...}]
qux: [...],
...
}
其中用作鍵(foo
,bar
,baz
,和上述qux
)可以被編輯的部分中的值。
我拍發方法:
<ul>
{Object.keys(data).sort().map(function(k1) {
return [
<li key={'k1-' + k1}><h3>{k1}</h3></li>,
<ul>
{Object.keys(data[k1]).sort().map(function(k2) {
return [
<li key={'k1-' + k1 + '-k2-' + k2}>
<h4>{k2}</h4>
</li>,
<ul>
data[k1][k2].map(function(item) {
return (<li key={'k3-' + item.id}>blah blah blah</li>);
})}
</ul>
];
})}
</ul>
];
})}
</ul>
不辦案現有值中,其中K1和K2的變化。
我已經嘗試在映射函數中使用列表索引作爲鍵的一部分,但是當列表長度/順序在更新上發生更改時,出現了類似的問題。我也嘗試致電this.forceUpdate()
瞭解相關的狀態變化,但這似乎沒有幫助。
有沒有一種鍵控方法可以在鍵編輯時正確地重新顯示列表?
謝謝德米特里。當我嘗試這樣做時,當項目在列表內或列表之間移動時,我遇到同樣的問題,因爲當列表重新排序時,項目的索引可能會更改,但這不會在呈現的列表中準確反映。我不認爲這些指標可以作爲這些物品可以如此移動的關鍵點。 –
您可以使用下劃線'_.uniqueId([前綴])'來生成密鑰。 http://underscorejs.org/#identity或者只是刪除這個函數,如果你不想添加整個庫。 –