我有一個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
如何完成將字串陣列添加為道具?
uj5u.com熱心網友回復:
你試過使用 push() 嗎?就像是:
學生[學生索引].tag.push(AddedTag);
uj5u.com熱心網友回復:
將標簽定義為物件內的陣列。像這樣的東西:
const students = [
{
name: "xyz",
address: "abc",
tag: []
}
]
然后在你的代碼更改以下行從:
students[studentIndex].tag = [AddedTag]
到students[studentIndex].tag.push(AddedTag)
那應該這樣做。
uj5u.com熱心網友回復:
嘗試
const { tag = [] } = students[studentIndex]
students[studentIndex].tag = [...tag, AddedTag]
uj5u.com熱心網友回復:
您可能可以通過使用帶有與學生 ID 對應的鍵的物件來實作您想要的
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/339077.html
標籤:javascript 数组 反应
上一篇:MacOS安裝使用Kettle
