class Demo extends Component {
render() {
const { list } = this.state
return (
<div>
{list.map(this._renderItem)}
</div>
)
}
_renderItem = item => {
const Item = withSwipeDelete(
<div>{item.id}</div>,
() => console.log('callback')
)
return <Item />
}
}
这是我的代码的一个示例,其中警告:列表中的每个孩子都应该有一个唯一的“键”道具。
所以我尝试了:
_renderItem = item => {
const Item = withSwipeDelete(
<div key={item.id}>{item.id}</div>, // add key here
() => console.log('callback')
)
return <Item />
}
和这个:
_renderItem = item => {
const Item = withSwipeDelete(
<div>{item.id}</div>,
() => console.log('callback')
)
return <Item key={item.id} /> // add key here
}
两者都不起作用。
withSwipeDelete
是一个高阶组件:
export default function withSwipeDelete(Cell, onDelete) {
return class extends Component {
render() {
return (
<div>
{Cell}
</div>
)
}
}
}