react報錯Each child in an array or iterator should。。?
01-06
在使用react的過程中,把版本從0.13.3升級到了1.0.0.結果原來的代碼報出了一個警告:Warning: Each child in an array or iterator should have a unique "key" prop. Check the top-level render call using
. See https://fb.me/react-warning-keys for more information.
我的相關代碼是:
class ListItemText extends React.Component { constructor() { super();}
render() { return ( & &{ this.props.title }&
&{ this.props.desc }&
&
&
return &
- { text }&
- 不知道是哪個用法在1.0.0中被廢棄了,望大神指點!謝謝!
這個是和react的dom-diff演算法相關的。react對dom做遍歷的時候,會根據data-reactid生成虛擬dom樹。如果你沒有手動的添加unique constant key的話,react是無法記錄你的dom操作的。它只會在重新渲染的時候,繼續使用相應dom數組的序數號(就是array[index]這種)來比對dom樹。
錯誤說得很清楚,就是缺一個叫做key的東西,如下就應該可以了
&
&
在遍歷或者循環輸出去渲染子組件的時候,key必不可少
關鍵在紅箭頭處,map返回一個數組,react的解析要求數組中的子元素必須要有key
這樣寫&
哪些地方需要加key?是子組件還是所有的組件,包括原生組件?
加個參數 表示下標啊
推薦閱讀: