2016-11-23 34 views
0

从我所知道的,ES6地图自动绑定到这个。为什么我需要在ES6地图功能中使用这个

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

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

但不知何故产品在函数中未定义,除非我使它成为this.product,为什么?

+0

我不好。我应该标记React。这就是反应如何工作。我不喜欢那种无所谓的投票。 –

+0

绑定意味着它将在反应而不是函数的情况下 – abhirathore2006

回答

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()

希望这会有所帮助!如果没有,请在这里查询我的相关信息。

相关问题