当我尝试通过条件Row
迭代器从父组件forEach
发送道具时,我甚至在子组件中得到undefined
。
我无法弄清楚问题是什么......
// Parent component
// ... class Row extends...
// ... some code
render() {
const canSelector = {
selectedItems: []
}
return (
<Row showImage={canSelector.selectedItems.forEach(item => {
item.ID === i ? 'item' : 'error'}) }
/>
}
)
// Child component for test
// ... class XXX extends...
// ... some code
const { showImage } = this.props
console.log(showImage); // gets "undefined", intead of "error" string
答案 0 :(得分:0)
Array.prototype.forEach()不会返回任何内容,这就是您undefined
组件中showImage
的值为<Row />
的原因。
我假设您正在尝试检查item.ID
是否与i
具有相同的值,并相应地返回'item'
或'error'
?
您可能需要检查Array.prototype.findIndex()。
您可以这样做:
<Row showImage={canSelector.selectedItems.findIndex(item => item.ID === i) > -1 ? 'item' : 'error'} />
findIndex()
将返回数组中第一个满足所提供条件的项的索引,否则它将返回-1
。