Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我移除或拼接阵列上的一个元素时,有没有办法停止触发deep watch?_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 当我移除或拼接阵列上的一个元素时,有没有办法停止触发deep watch?

Javascript 当我移除或拼接阵列上的一个元素时,有没有办法停止触发deep watch?,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我在Vue.js 2.0中遇到了一个问题。我注意到当我从数组中删除一个元素时。组件上的深度监视将被触发,并将重置移除元素索引后每个组件的值 我有一个过滤器模态组件。此过滤器模态组件具有不同类型过滤器的选项。它有一个删除按钮,将触发deleteFilter(索引) 此.filters是一个数组变量,用于保存选定的筛选器 我在filter模式中有一个组件,它是filter selected 在“过滤器模式”中,选择了一个过滤器,并且该过滤器的“v”为 <filterselected>

我在Vue.js 2.0中遇到了一个问题。我注意到当我从数组中删除一个元素时。组件上的深度监视将被触发,并将重置移除元素索引后每个组件的值

我有一个过滤器模态组件。此过滤器模态组件具有不同类型过滤器的选项。它有一个删除按钮,将触发deleteFilter(索引)

此.filters是一个数组变量,用于保存选定的筛选器

我在filter模式中有一个组件,它是filter selected

在“过滤器模式”中,选择了一个过滤器,并且该过滤器的“v”为

<filterselected>
    v-for='selectedFilter, index) in filters'
    :index='index'
</filterselected>
我注意到,当我从数组中删除一个元素时,深度监视事件(日期)将被触发,并将获得一个空/未识别的值,该值将被设置为this.inputValue


然后,一旦将该值设置为this.inputValue,也会有一个监视事件,并将在之后触发,该监视将向父组件发出该值

在这里编写一个运行示例,您是否可以尝试重现此行为?或者,如果你不能,你能多分享一点你的代码,让我们更好地理解吗?嗨@Bernardoduart我编辑了我的文章。你可以在那里查看更多信息。谢谢,看起来这只是循环键的问题。如果在
上放置合适的
属性,则在移除一个组件时,应停止所有组件的移动。您需要仔细选择
,尽管使用
索引
没有帮助,但它必须是唯一标识过滤器的东西。
<filterselected>
    v-for='selectedFilter, index) in filters'
    :index='index'
</filterselected>
Watch: {
    date: {
        handler(val){
           this.inputValue = val;
        },
        deep: true
    },
    inputValue: function(){
        this.$emit('changeinput', { value: this.inputValue }
    }
}