2016-11-23 8 views
0

Von dem, was ich wusste, bindet ES6 Karte automatisch daran.Warum muss ich dies in ES6 Kartenfunktion verwenden

aber irgendwie Produkt ist hier in der Funktion undefined, es sei denn, ich mache es this.product, warum ist das?

+0

MY schlecht. Ich hätte React etikettieren sollen. So funktioniert Reaktion. Ich mag das nicht für nichts abstimmen. –

+0

bind bedeutet, dass es im Kontext von react statt der Funktion sein wird – abhirathore2006

Antwort

1

Ich verstehe Ihre Anfrage nicht klar, aber ich nehme an, dass das Problem möglicherweise aufgrund der { } Sie auf map() Funktion hinzugefügt haben. Wenn Sie Block in map() verwenden, stellen Sie sicher, dass Sie return etwas aus diesem Block.

Wenn map() Funktion zu schreiben, wenn es nur eine einzige Anweisung ist können Sie vermeiden geschweiften Klammern mit, da sie automatisch die Anweisung gibt.

array.map(item => item+1) 

Wenn Sie geschweifte Klammern verwenden, stellen Sie sicher, dass return Schlüsselwort verwenden Sie die Elemente innerhalb des Blocks zurückzukehren.

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

zu Ihrem Beispiel zurückzukommen, ich denke, das gut funktionieren soll,

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

oder

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

Ich sehe keine Verwendung der Bedingungsprüfung im Innern map() Funktion, wie es redundant ist.

Hoffe, das hilft! Wenn nicht, ping mich hier mit deiner Frage an.

Verwandte Themen