向对象添加属性数组



我有一个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]

相关内容

  • 没有找到相关文章

最新更新