2017-10-12 18 views
0

ReactアプリケーションでImmutable JS with Reduxを使用する際に問題があります。ここに私が作成したサンプルコードです:キーが削除されたときに不変なマップ順序が変更された理由

const entry1 = {id: 1, name: 'Entry 1'} 
const entry2 = {id: 2, name: 'Entry 2'} 
const entry3 = {id: 3, name: 'Entry 3'} 
const entry4 = {id: 4, name: 'Entry 4'} 
const entry5 = {id: 5, name: 'Entry 5'} 

const entries = Immutable.Map({1: entry1, 2: entry2, 3: entry3, 4: entry4, 5: entry5}) 
const updatedEntries = entries.delete('3') 

// First Console Log 
console.log(entries.valueSeq().toJS()) 

// Second Console Log 
console.log(updatedEntries.valueSeq().toJS()) 

を私の最初のコンソールログでは、順序が正しいです:1,2,3,4,5。しかし、私の第2のコンソールログでは、命令は乱され、1,2,5,4になります。

私のコードに何が悪いと思いますか?

答えて

1

Mapは注文を保証しません。あなたが同じ順序でそれを維持したい場合は、OrderedMap

OrderedMap

エントリの繰り返し順序は、彼らがされた順序になるという追加の保証を持っている地図の種類を使用する必要があります

+0

私たちがOrderedMapでマージを使用する場合は、toOrderedMap()を使用して出力がMapに変換されていないことを確認する必要があります。 – mario

関連する問題