反应。尝试使用forEach函数时,道具错误

时间:2018-05-03 13:10:06

标签: javascript reactjs

当我尝试通过条件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

1 个答案:

答案 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