2016-11-23 3 views
0

私が知っていたことから、ES6マップはこれに自動的にバインドします。なぜこれをES6マップ機能で使用する必要がありますか

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

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

しかし、私がthis.productを作成しない限り、何らかの形で製品がここで定義されていないのはなぜですか?

+0

MY悪いです。私は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()は冗長として機能します。

希望すると便利です。もしそうでなければ、あなたの質問で私にpingしてください。

関連する問題