オブジェクトがあると仮定します。
const object = {
'foo': {
'bar': [1, 2, 3]
}
}
4
をobject.foo.bar
配列にプッシュする必要があります。
今、私はこれを次のようにやっています:
const initialState = Immutable.fromJS(object)
const newState = initialState.setIn(
['foo', 'bar', object.foo.bar.length],
4
)
console.log(newState.toJS())
しかし、パスでobject.foo.bar.length
を使用する必要があるため、私はそれがあまり好きではありません。私の実際の例では、オブジェクトはより深くネストされており、配列の長さを取得することは非常に見苦しいです。別のより便利な方法はありますか?
これは動作するはずです
initialState.updateIn(['foo', 'bar'], arr => arr.Push(4))
参照:
seamless-immutable
を使用しています。ネストされたオブジェクトの配列に新しいアイテムを追加すると、このエラーが発生しました。
Pushメソッドは、不変データ構造で呼び出すことはできません。
配列にはまだPush
メソッドがありますが、機能しません。解決策は代わりにconcatを使用することです。詳細は #4 :
initialState.updateIn(['foo', 'bar'], arr => arr.concat([4]));
このヘルプを願っています!