据我所知,ES6地图自动绑定到此。
{
cart.products ?
<span>
cart.products.map( product => {
this.product ? //here
<span>
blablabla
</span>
:
false
})
但是在某种程度上产品在函数中是未定义的,除非我把它变成了this.product,为什么会这样?
答案 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我。