我注意到我可以傳遞給React一組嵌套數組,它會正確渲染項目,但是當我這樣走時,它不會抱怨缺少key
s在我的元素上。React中的平面陣列vs嵌套陣列的處理方式不同
const stuff = 'a,b,c';
// Nested Array
// React is fine with it and automatically assigns keys
// Sample data: [[a, <br />], [b, <br />], [c, <br />]]
const Foo =() => <div>{stuff.split(',').map(itm => [itm, <br />])}</div>;
// Flat Array
// React warns me that I should assign a key to each element in array
// Sample data: [a, <br />, b, <br />, c, <br />]
const Bar =() => <div>{stuff.split(',').map(itm => [itm, <br />]).reduce((a, b) => a.concat(b), [])}</div>;
樣品筆:
https://codepen.io/FezVrasta/pen/NppLPR
它爲什麼會發生?我無法在「自動分配的鍵」上找到對React中「嵌套數組」的任何引用。
對於兒童的數組,請使用[keyed fragments](https://facebook.github.io/react/docs/create-fragment.html)。文檔承認無法將「key」屬性添加到本地陣列並提供「react-addons-create-fragment」包來處理它們。 –