我正在创建一个列表列表,并希望为每个元素放置一个唯一的键。当我使用 React Dev Tool 时,新键是“2016-10,-,football”。
import React from 'react'
import ReactDOM from 'react-dom'
const dates = ['2016-10', '2016-11', '2016-12'];
const sports = ['football', 'baseball', 'basketball'];
const Dates = ( { dates, sports } ) => {
return (
<ul>
{ dates.map( date => {
return (
<div key={date.toString()} >
<li>{date}</li>
<Sports sports={sports} date={date}/>
</div>
)
})
}
</ul>
)
}
const Sports = ( { date, sports } ) => {
return(
<ul>
{ sports.map( sport => {
// Results in: key="2016-10,-,football"
// Expected: key="2016-10-football"
return (<li key={[date, '-', sport]} >{sport}</li>)
})}
</ul>
)
}
ReactDOM.render(<Dates dates={dates} sports={sports}/>, document.getElementById('main'))
Run Code Online (Sandbox Code Playgroud)
key 需要一个字符串,因此当您传递一个数组时,您正在调用该数组的 .toString() 函数。如果你这样做,你会看到相同的结果console.log([date, '-', sport].toString())
更换[date, '-', sport]与date + '-' + sport修复它。
| 归档时间: |
|
| 查看次数: |
6781 次 |
| 最近记录: |