【发布时间】:2022-08-13 20:34:37
【问题描述】:
我有一个 VueJS 项目。我有一个 v-for 循环,每行都有输入字段。我想复制该行。但由于某种原因,重复的字段绑定到原始行。
<div v-for=\"(e, index) in exercises\" :key=\"index\">
<div @click=\"duplicateRow(index, e)\" >
<input type=\"text\" v-model=\"e.weight\" />
<input type=\"text\" v-model=\"e.height\" />
</div>
</div>
duplicateRow(index, e){
this.exercises.splice(index, 0, e);
}
所以它完美地复制了,但是当我更改新行的值时,它也会更改原始行的值。无论我添加多少行,都会发生这种情况。
我觉得答案将是关于反应性的,但我感到愚蠢和迷失。
-
只需在
duplicateRow:dupicateRow(index, e) { this.exercises.splice(index, 0, structuredClone(e))}中将e替换为structuredClone(e)。 Docs。