如果我使用Vue 2中的道具传递一个对象数组,并且在这个数组上使用v-for指令,那么view不会更新if其中一个数组元素被删除。在Vue 2传递道具之后v-for不会在物品被删除后得到更新
这似乎只有在V型的元素被声明为数据的工作,但我的组件需要接收道具......
在下面的例子中,你可以看到,services
数组中的元素的确已删除,但v-for未被触发。
我敢肯定,我在这里做一些错误......
Vue.component('location-service-list', {
props: ['services'],
template: '<div>{{ services }}<div v-for="(service, index) in services">{{ service.id }} - {{ service.name }} <a @click.prevent="remove(index)">remove</a></div></div>',
methods: {
remove(index) {
this.services.splice(index, 1);
console.log(this.services);
},
}
});
const app = window.app = new Vue({
el: '#admin-app'
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.8/vue.js"></script>
<div id="admin-app">
<location-service-list :services='[{"id":1,"name":"Test 1"},{"id":2,"name":"Test 2"}]'></location-service-list>
</div>