nasıl takip kullanarak ImmutableJS elde edebilirsiniz: - o zaman aslında bu değeri dönüşecek - anahtarının başvurulan dizi javascript dizi düz iseImmutableJS'de, yeni bir diziyi bir haritaya nasıl aktarabilirsiniz?
myMap.get(key).push(newData);
nasıl takip kullanarak ImmutableJS elde edebilirsiniz: - o zaman aslında bu değeri dönüşecek - anahtarının başvurulan dizi javascript dizi düz iseImmutableJS'de, yeni bir diziyi bir haritaya nasıl aktarabilirsiniz?
myMap.get(key).push(newData);
: myMap
değişmez olduğu
const myMap = Immutable.fromJS({
nested: {
someKey: ['hello', 'world'],
},
});
const myNewMap = myMap.updateIn(['nested', 'someKey'], arr => arr.push('bye'));
console.log(myNewMap.toJS());
// {
// nested: {
// someKey: ["hello", "world", "bye"]
// }
// }
(bu JSBin bakınız), ayarlamak istediğiniz her seferinde/güncellemek/bazılarını silin içindeki veriler, yeni verilere bir referans döndürecektir. Yani, onu erişmek için bir değişkene ayarlamanız gerekir (bu durumda, myNewMap
).
beklendiği gibi böylece kod çalışacaktır (yani - myMap, newData'nın içeri sokulmasıyla 'key' de bir mutable/mutasyona uğramış dizi içerecektir. Ancak, bu tür bir değişiklik immutabilitenin amacını yitirir, bu yüzden myMap'teki anahtarın bir Immutable.List öğesinde olmasını tavsiye ederim. Bu durumda yapmanız istersiniz:
var newMap = myMap.set('key', myMap.get('key').push(newData))
Bu arr.push 'un aslında güncellenmiş bir diziyi değil, yeni bir boyutunu döndüreceğini de unutmayın. – kboom