簡體   English   中英

向對象添加屬性數組

[英]Adding an array of properties to an object

我有一組student對象,其中包含一些基本信息,如姓名和地址。 我希望能夠向基於用戶輸入的對象添加tag屬性
我正在用這樣的輸入完成這個

<input placeholder="new tag" onInput={(e) => setAddedTag(e.target.value)} /> 
<button type="submit" onClick={() => addTag()}>Add Tag</button>

我正在使用此代碼將tag屬性添加到特定對象

const addTag = () => {
  setStudentIndex(students.id - 1)
  students[studentIndex].tag = [AddedTag]
  // needs to add more than 1 
}

然而,這似乎只適用於一個標簽,如果用戶添加第二個標簽,它將覆蓋第一個標簽。 (或者它會崩潰)我嘗試過使用傳播運算符

students[studentIndex].tag = [...AddedTag]

然而['a', 'b', 'c']當用戶輸入abc時,這反而將標簽設置為['a', 'b', 'c']如何完成添加字符串數組作為道具?

你試過使用 push() 嗎? 就像是:

學生[學生索引].tag.push(AddedTag);

嘗試

const { tag = [] } = students[studentIndex]
students[studentIndex].tag = [...tag, AddedTag]

將標簽定義為對象內的數組。 像這樣的東西:

const students = [
   {
       name: "xyz",
       address: "abc",
       tag: []
   }
]

然后在您的代碼中將以下行從: students[studentIndex].tag = [AddedTag]更改為students[studentIndex].tag.push(AddedTag)

應該這樣做。

您可能可以通過使用帶有與學生 ID 對應的鍵的對象來實現您想要的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM