Vel*_*dan 5 immutable.js react-redux
我正在尝试使用 Immutable.js。所以我使用了 Map 对象,并且我有一个 2 个字段作为例子。
const initialState = Map({
isUserAuthorized : false,
pending : false
});
Run Code Online (Sandbox Code Playgroud)
我想更新两者。我怎么能做到这一点?我尝试使用这样的标准 Update 方法:
state.update( "isUserAuthorized", () => true, "pending", () => false);
Run Code Online (Sandbox Code Playgroud)
但它以某种方式不起作用。所以我只有一个想法 - 只更新特定的键,然后对其他键执行相同操作并返回结果。
但我认为这是一个不那么完美的想法。也许存在其他正常变体?谢谢你的帮助!
PS 我发现它可以通过set和withMutations来完成,例如:
initialState.withMutations(map => {
map.set("isUserAuthorized", true).set("pending", false);
})
Run Code Online (Sandbox Code Playgroud)
但是在 Map 中更新多个值真的有那么难吗?
您可以使用.set():
const initialState = Map({
isUserAuthorized : false,
pending : false
});
initialState = initialState.set('isUserAuthorized', true);
initialState = initialState.set('pending', false);
Run Code Online (Sandbox Code Playgroud)
如果不想重复的话。您可以创建一个函数来传递多个参数。
另一种方法是使用.merge():
const newState = initialState.merge({
isUserAuthorized: true,
pending: false
});
Run Code Online (Sandbox Code Playgroud)
或者链接多个集合:
initialState = initialState.set('isUserAuthorized', true)
.set('pending', false)
.set('key3', 'value3');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2796 次 |
| 最近记录: |