簡體   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