Ho una matrice di componenti di reazione che sto cercando di eseguire il rendering in un ordine specifico. Qualcosa di simile a questo:Posso garantire l'ordine di rendering di un array di componenti React?
render: function() {
var items = stock.map(function(item) {
return <NewLI data={item} key={item.id}/>
}
return <ul>{items}</ul>
}
Il mio problema è che reagiscono non restituisce il Li nell'ordine della matrice originale (il componente effettivo è più complessa di un singolo li
, ma che sia correttamente avvolto in un div
).
quindi se stampare le chiavi id
di items
, ottengo questo:
items.forEach(function(a) { console.log(a.id) })
> 1
> 2
> 3
> 4
ma il mio Reagire rendono simile a questa:
<ul>
<li...>2</li>
<li...>3</li>
<li...>4</li>
<li...>1</li>
</ul>
È questo il comportamento previsto? C'è un modo per garantire l'ordine?
È sicuramente un array e non un oggetto, e le chiavi sono id generate da Django. Sposterò questo in fondo alla mia lista di sospetti. Quando passo, sembra che React restituisca gli elementi correttamente, ma poi sono riorganizzati senza il re-rendering di React. Molto strano. – AJFarkas