我在不可变的js中有一个像这样的结构的 map :
myMap = {
a: {
b: {
c: [
{ d: "something1", ... },
{ d: "something2", ... }
],
...
},
...
},
...
}
然后我想更新d
s的值。
我尝试过:
myMap.updateIn(["a", "b", "c"], (each) => {
each.set("d", "something else");
});
以及喜欢:
myMap.updateIn(["a", "b", "c"], (each) => {
each.map((e) => {
e.set("d", "something else");
});
});
但如您所知,这些不起作用。
如何更新d
s的值?
最佳答案
我找到了上面的代码不起作用的原因。
首先,第二个代码部分正确,但第一个代码是错误的。
部分表示逻辑是正确的,但 ES6 的语法不正确。
所以,正确的代码是:
const updatedMyMap = myMap.updateIn(["a", "b", "c"], each =>
each.map(e => e.set("d", "something else"))
);
(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
// equivalent to: (param1, param2, …, paramN) => { return expression; }
这就是我的代码不起作用的原因。
我应该返回map()
的结果。
关于javascript - immutableJS - updateIn 方法无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416644/