gpt4 book ai didi

javascript - Immutablejs - 映射不使嵌套对象不可变

转载 作者:行者123 更新时间:2023-12-02 23:58:01 26 4
gpt4 key购买 nike

我正在设置这样的 map :

import { Map } from 'immutable';

const initialState = {
a: "test",
b: {
inside: "inside value"
}
}

const otherState = {
c: "other value"
}

const myState = new Map({ app: new Map(initialState).merge(otherState) });

这似乎有效,但是当我尝试更改嵌套对象内的值时,它似乎对我不起作用(我收到“无效的键路径”)。所以尝试:

myState.setIn(['app', 'b', 'inside'], 'newValue'); 

给我一个“无效的 key 路径”错误。看起来当我注销时,嵌套对象并未变为不可变。不确定我做错了什么。

编辑 - 这是一个代码笔来显示问题 - https://codepen.io/ajmajma/pen/rRQoZp

最佳答案

显然,正确的路径应该是 ['app', 'b', 'inside'] ,因为 appmyState< 的唯一属性 对象。

您还需要 Immutable.fromJS() 您的 initialStateotherState 对象,否则嵌套键将被视为 JS 对象,而不是 immutablejs map 。

const myState = new Map({ app: new Map(Immutable.fromJS(initialState)).merge(Immutable.fromJS(otherState)) });

关于javascript - Immutablejs - 映射不使嵌套对象不可变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55291148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com