Javascript immutableJS-updateIn方法不';I don’我没有按预期工作
我在immutable js中有一个这样的结构图:Javascript immutableJS-updateIn方法不';I don’我没有按预期工作,javascript,immutable.js,Javascript,Immutable.js,我在immutable js中有一个这样的结构图: myMap = { a: { b: { c: [ { d: "something1", ... }, { d: "something2", ... } ], ... }, ... }, ... } 然后我想更新ds的值 我试过: myMa
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)=>表达式
//等价于:(param1,param2,…,paramN)=>{return expression;}
这就是我的代码不起作用的原因
我应该返回
map()
的结果,最后一个代码片段看起来不错。我会说这应该行得通。@JoshuaK不,对我来说不行:(你能试试吗?当我尝试第二个时,myMap
的值没有改变。是的。我试过了。它行得通。这是一个@JoshuaK你的代码行得通,但我上面的代码不行。最后,我找到了原因。那是因为{}
在我的代码中。是我的错误代码。