我正在尝试使用 Immutable.js。所以我使用了 Map 对象,并且我有一个 2 个字段作为例子。
const initialState = Map({
isUserAuthorized : false,
pending : false
});
我想更新两者。我怎么能做到这一点?我尝试使用这样的标准 Update 方法:
state.update( "isUserAuthorized", () => true, "pending", () => false);
但它以某种方式不起作用。所以我只有一个想法 - 只更新特定的键,然后对其他键执行相同操作并返回结果。
但我认为这是一个不那么完美的想法。也许存在其他正常变体?谢谢你的帮助!
附言我发现它可以通过 完成集 和 withMutations 喜欢:
initialState.withMutations(map => {
map.set("isUserAuthorized", true).set("pending", false);
})
但是在 Map 中更新多个值真的有那么难吗?
最佳答案
您可以使用 .set() :
const initialState = Map({
isUserAuthorized : false,
pending : false
});
initialState = initialState.set('isUserAuthorized', true);
initialState = initialState.set('pending', false);
如果不想重复的话。您可以创建一个函数来传递多个参数。
另一种方法是使用 .merge() :
const newState = initialState.merge({
isUserAuthorized: true,
pending: false
});
或者链接多个集合:
initialState = initialState.set('isUserAuthorized', true)
.set('pending', false)
.set('key3', 'value3');
关于react-redux - Immutable.js 更新 Map 中的多个键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41671986/