我需要在调用函数后,设置为空数组,然后立即在其中添加一个新数组。这是因为当调用@click事件时,我需要调用一个对话框,并用动态组件(用子弹属性调用它们)填充其内容,因此应适当更改数组以将子弹属性传递给组件。我的代码是:
slugs: []
slugConversacion(slug) {
if (this.slugs > 0) {
this.slugs = []
// this.slugs.splice(this.slugs.indexOf(slug), 0);
// this.$delete(this.slugs, this.slugs.indexOf(slug))
}
else {
this.slugs.push(slug);
}
}
<Conversacion
v-for="slug in slugs"
:key="slug.id"
:slug="slug.slug"
></Conversacion>
这不起作用,因为当我单击事件slugConversacion()并设置了空数组时,只有再次单击时,才会填充。我认为这是用于if / else条件。
什么是正确的方法?谢谢!
只需这样做:
if (this.slugs.length > 0) {
this.slugs = [];
}
this.slugs.push(slug);
如果在将[]分配给数组并失去反应性的情况下无法将数组设置为空,则可以尝试下一件事情。
这对我来说是最后的手段:
var i = slugs.length;
while(i --){
slugs.splice(i, 1);
}
由于索引混乱,您应该在反转模式下进行拼接:如果每次通过]抛出循环,每次都会保留索引为1的数组元素。
slugs.forEach((item, index) => { slugs.splice(index, 1); });
之后,您可以做:
this.slugs.push(slug);