Mam szereg składników reakcji, które próbuję renderować w określonej kolejności. Coś takiego:Czy mogę zagwarantować kolejność renderowania tablicy komponentów React?
render: function() {
var items = stock.map(function(item) {
return <NewLI data={item} key={item.id}/>
}
return <ul>{items}</ul>
}
Moim problemem jest to, że React nie wraca Li w kolejności oryginalnej tablicy (rzeczywisty składnik jest bardziej skomplikowane niż jednym li
, ale jest prawidłowo opakowane w div
).
więc jeśli druk na id
klucze items
, otrzymuję to:
items.forEach(function(a) { console.log(a.id) })
> 1
> 2
> 3
> 4
ale mój React renderowanie wygląda następująco:
<ul>
<li...>2</li>
<li...>3</li>
<li...>4</li>
<li...>1</li>
</ul>
Jest to oczekiwane zachowanie? Czy istnieje sposób na zagwarantowanie zamówienia?
To zdecydowanie tablica, a nie obiekt, a klucze są generowane przez idjango. Przeniesię to na dół listy podejrzanych. Po przejściu, wygląda na to, że React renderuje elementy prawidłowo, ale potem są one rearanżowane bez ponownego renderowania React. Bardzo dziwny. – AJFarkas