Ich habe eine Reihe von reagierenden Komponenten, die ich versuche, in einer bestimmten Reihenfolge zu rendern. Etwas wie folgt aus:Kann ich die Renderreihenfolge eines Arrays von React-Komponenten garantieren?
render: function() {
var items = stock.map(function(item) {
return <NewLI data={item} key={item.id}/>
}
return <ul>{items}</ul>
}
Mein Problem ist, dass Reagieren Sie nicht das li in der Reihenfolge der ursprünglichen Anordnung zurückkehrt (die tatsächliche Komponente ist komplexer als ein einzelnes li
, aber es ist richtig in einem div
verpackt).
so, wenn der Druck der id
Schlüssel items
, bekomme ich diese:
items.forEach(function(a) { console.log(a.id) })
> 1
> 2
> 3
> 4
aber meine Reaktion sieht wie folgt machen:
<ul>
<li...>2</li>
<li...>3</li>
<li...>4</li>
<li...>1</li>
</ul>
das erwartete Verhalten ist? Gibt es eine Möglichkeit, die Bestellung zu garantieren?
Es ist definitiv ein Array und kein Objekt, und die Schlüssel sind IDs von Django generiert. Ich werde dies an den unteren Rand meiner Liste der Verdächtigen verschieben. Wenn ich durchtrete, sieht es aus, als ob React die Elemente richtig rendert, aber dann werden sie ohne React-Rendering neu angeordnet. Sehr eigenartig. – AJFarkas