为什么我需要在ES6映射函数中使用它

时间:2016-11-23 05:01:11

标签: javascript reactjs ecmascript-6

据我所知,ES6地图自动绑定到此。

                            {
                             cart.products ?
                                <span>
                                cart.products.map( product => {

                                  this.product  ?   //here
                                    <span>
                              blablabla
                                </span>
                                  :
                                  false
                                })

但是在某种程度上产品在函数中是未定义的,除非我把它变成了this.product,为什么会这样?

1 个答案:

答案 0 :(得分:1)

我不清楚您的查询,但我认为问题可能是因为您在{ }函数中添加了map()。如果您在map()中使用阻止,请确保return来自该区块的内容。

如果只有单一陈述,则在撰写map()函数时,您可以避免使用大括号,因为它会自动返回该陈述。

array.map(item => item+1)

如果您使用大括号,请确保使用 return 关键字返回块内的元素。

array.map(item => { return item+1 })

回到你的例子,我认为这应该可行,

{ 
    cart.products 
    ?  <span>
            cart.products.map(product => <span> { product } </span> )
       </span>
    :  false 
}

{ 
    cart.products 
    ?  <span>
            cart.products.map(product => { return <span> { product } </span> })
       </span>
    :  false 
}

我没有在map()函数中看到任何条件检查的使用,因为它是多余的。

希望这有帮助!如果没有,请在此处使用您的查询ping我。