我有一个student
对象数组,其中包含一些基本信息,如Name和Address。我希望能够添加一个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]
然而,当用户输入abc
时,这反而将标记设置为['a', 'b', 'c']
我如何完成添加字符串数组作为道具?
你试过使用push()吗?比如:
学生[studentIndex] .tag.push (AddedTag);
将标签定义为对象内的数组。像这样:
const students = [
{
name: "xyz",
address: "abc",
tag: []
}
]
然后在你的代码中更改以下行:students[studentIndex].tag = [AddedTag]
tostudents[studentIndex].tag.push(AddedTag)
应该可以了。
try
const { tag = [] } = students[studentIndex]
students[studentIndex].tag = [...tag, AddedTag]