繁体   English   中英

使用对象分配添加属性

[英]Adding property using Object assign

我有以下功能:

addHrefs = (list) => {
    const listWithHrefs = list.map((item) => {
        item.href = customFunction(item.name);
        return item;
    });
    return listWithHrefs;
}

这里的问题是我正在突变list对象。 我想知道如何在不更改list情况下添加特定的(key, value)对。 Object.assign是否可能? 我该怎么做?

使用Object.assign是可能的。

Object.assign()方法用于将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。 它将返回目标对象。

您可以将属性值分配给新对象并返回它。

addHrefs = list =>
    list.map(item => Objects.assign({}, item, { href: customFunction(item.name) }));

您可以将普通对象作为第一个参数传递给Object.assign() ,在第二个参数处引用该对象。 对分配给Object.assign()变量执行操作,返回变量

 let list = [{ a: 1 }, { a: 2 }, { a: 3 }]; let res = list.map(item => { let o = Object.assign({}, item); // do stuff with `o` oa = oa + 10; // return `o` return o }); console.log(list, res); 

无法分配给 # 的只读属性<object>使用带有 Recoil 的 React<div id="text_translate"><p> I'm trying to update my state (an array of objects), but get the above error whenever I try to use.map or edit a clone of the state object.</p><pre> React.useEffect(() =&gt; { setUserMeasurements((oldUserMeasurements) =&gt; { return oldUserMeasurements.map(nameAndMeasure =&gt; { if (nameAndMeasure.name === name) { nameAndMeasure.measure = 60 } return nameAndMeasure; }) })</pre><p> })</p><p> 当我尝试代码的“nameAndMeasure.measure = 60”部分时,它似乎不喜欢它,但我不明白为什么。 谁能解释一下?</p></div></object>

[英]Cannot assign to read only property of #<Object> using React with Recoil

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM