reactjs - 如何更新嵌套不可变映射中的值

标签 reactjs redux immutable.js immutable-collections

我是 immutable.js 的新手,并试图找到一种更新嵌套映射的方法

这是我的对象

let state = OrderedMap({
    'name': Map({ id: 'name', hint: 'Search by name', value: '' }),
    'job': Map({ id: 'job', hint: 'Search by job title', value: ''}),
    'state':  Map({ id: 'state', hint: 'Search by state', value: ''})
});

我正在尝试使用 setIn 函数设置“名称”对象的值

state.setIn(['name', 'value'], 'Test');

该值未按预期更新。我在这里错过了什么吗

最佳答案

setIn 不会改变原始的 state,但它会返回另一个状态,因此您基本上会拥有

state = state.setIn(['name', 'value'], 'Test');

关于reactjs - 如何更新嵌套不可变映射中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598559/

相关文章:

javascript - 当像 FSM 和 useEffect 一样使用时,React 状态更新是否按顺序发生?

reactjs - 使用异步数据初始化组件

javascript - React redux reducer 从状态获取数据?

javascript - 不可变js : How to deserialise a complex JS object

javascript - 图标没有出现在 react native 中

reactjs - 为什么 react-native 启动命令卡在 "Loading dependency graph, done."

javascript - Flow 无法识别过滤不可变列表

javascript - immutable.js 过滤和变异(删除)找到的条目

javascript - 如何将库函数绑定(bind)到reactjs类/内容

javascript - 对象无法正确复制