根据the document,使用filter
应该很好。但是我的却不起作用:(尝试依次单击Remove One
,然后依次单击Filter One
和Remove One
,然后您可以看到Remove
可以运行,但是{{ 1}}没有)
Filter
new Vue({
el: '#app',
data() {
return {
answers: ['a', 'b', 'c']
}
},
methods: {
removeOne() {
this.answers.shift();
// console.log(this.answers);
},
filterOne() {
this.answers = this.answers.filter((e) => { return e === 'b'});
console.log(this.answers);
}
},
components: {
'mytest': {
template: `<ul><li v-for="(v, i) in myAnswers" :key="i">{{ v }}</li></ul>`,
props: ['answers'],
data() {
return {
myAnswers: this.answers
}
}
}
}
});
答案 0 :(得分:0)
您的问题如下:
answers
是#app数据中的数组answers
数组的引用作为prop传递给mytest
组件。removeOne
中,您正在变异父answers
数组。 mytest
看到的是同一数组,因此mytest
视图会自动更新以反映此更改filterOne
中,您不会突变原始数组。您可以将父answers
数组替换为另一个数组,并过滤掉一些元素。但是,mytest
组件仍然具有对作为道具传递的原始answers
数组的引用,该数组未经任何人修改,因此视图不会更改。