2017-04-17 7 views
1

Gibt es die Möglichkeit, 2 (oder mehr) Schleifen in einer Komponente zu verwenden? Wenn ich eine Karte verwenden:ReactJS - zwei Schleifen?

<div className="board"> 
    {Array(height).fill(1).map((elh, h) => 
     <Field key={h}/> 
    )} 
</div> 

Es zeigt propertly Feld 10-mal, aber wenn ich Schleife innerhalb dieser Schleife schreiben:

<div className="board"> 
    {Array(height).fill(1).map((elh, h) => 
     {Array(width).fill(1).map((elw, w) => 
     <Field key={h}/> 
    )} 
    )} 
</div> 

es zeigt nichts (ohne Fehler) :( Bitte helfen . ich bin Anfänger in Verständnis reactjs

+0

'Array (Höhe) .fill (1)' was gibt das zurück? – aug

+0

@Aug es erstellen Array mit Höhe und füllt mit "1" –

Antwort

1

Sie zusätzliche {} dass entfernen verwendet, {} sind erforderlich, wenn Sie eine Berechnung tun wollen, hier Sie wollen einfach nur das Ergebnis return von innen map, dort {} werden nicht benötigt. Sie müssen es so schreiben:

<div className="board"> 
    { 
     Array(height).fill(1).map((elh, h) => (
      Array(width).fill(1).map((elw, w) => <Field key={h}/>) 
     )) 
    } 
</div> 

Oder die return innerhalb map verwenden, wenn {} verwendet wird, wie folgt aus:

<div className="board"> 
    { 
     Array(height).fill(1).map((elh, h) => { 
      return Array(width).fill(1).map((elw, w) => <Field key={h}/>) 
     }) 
    } 
</div> 
+0

wow;) Es funktioniert jetzt ... Sehr danke :) übrigens. Empfiehlst du irgendeinen reactJS Kurs? :) –

+0

check das doc, es ist ziemlich beeindruckend und es wird alles von den Grundlagen abdecken: https://facebook.github.io/react/docs/hello-world.html –

+0

sehr vielen Dank :) –

2

eine Rückkehr statment

{Array(height).fill(1).map((elh, h) => 
     { return {Array(width).fill(1).map((elw, w) => 
        <Field key={h}/> 
       ) 
       } 
     } 
    )} 

oder entfernen Verwenden Sie den Innen {}

+0

Ich hatte eine gute Zeit mit den folgenden Youtube Tutorials, https://www.youtube.com/watch?v=MhkGQAoc7bc&list=PLoYCgNOIyGABj2GQSlDRjgvXtqfDxKm5b. Hat mir sehr geholfen, weil es einfach und von Grund auf neu ist –

1

entfernen Sie die zusätzliche Halterung

<div className="board"> 
    { Array(height).fill(1).map((elh, h) => 
      Array(width).fill(1).map((elw, w) => <Field key={h}/>) 
     )) 
    } 
</div> 

in jsx, wenn Sie einen Bereich schreiben, dass Sie Sie die geschweifte Klammer verwenden ausgewertet werden soll {}. Sie verschachteln geschweifte Klammern nicht, weil Sie sich bereits in einer Gruppe befinden, die ausgewertet werden soll. aka Sie wollen nur eine geschweifte Klammer Gruppe für Javascript-Auswertung

Verwandte Themen