gpt4 book ai didi

javascript - ImmutableJS - 更新列表中的值

转载 作者:可可西里 更新时间:2023-11-01 02:35:39 27 4
gpt4 key购买 nike

我有一个这样的 map (在 ImmutableJS 中):

{arrayOfValues: [
{one: {inside: 'first in array'}},
{one: {inside: 'second in array'}}
]}

我想更新“arrayOfValues”数组中第二个条目中“inside”的值。我该怎么做?这就是我现在所拥有的,上面写着“ Uncaught Error :无效的 keyPath”

theMap.update('arrayOfValues',(list)=>{
return list.setIn([1,'one','inside'],'updated value');
})

我也直接试过了,没用:

theMap.setIn(['arrayOfValues',1,'one','inside'],'updated value');

在寻找解决方案几个小时后,我感谢您的帮助。谢谢。

最佳答案

您所做的是正确的(参见 JSBin)。

const orig = Immutable.fromJS({
arrayOfValues: [
{ one: { inside: 'first in array' } },
{ one: { inside: 'second in array' } },
]
});

const updated = orig.setIn(['arrayOfValues', 1, 'one', 'inside'], 'updated value');

console.log(updated.toJS());

// {
// arrayOfValues: [
// { one: { inside: 'first in array' } },
// { one: { inside: 'second in array' } },
// ]
// }

当您调用 orig.setIn() 时,它不会直接修改 orig。这就是这个 Immutable 库的全部目的。它不会改变现有数据,而是根据现有数据创建新数据。

关于javascript - ImmutableJS - 更新列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31767313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com