我有多个过滤器,它们被设置为false,如果被单击,则将其变为true,并且必须实现特定的筛选器。如何使用观察者来寻找我的过滤器从假到真的变化。目前,由于我有我的所有功能在一个观察者,如果一个过滤器被点击,所有的过滤器都实现了。然而,我需要它只是特定的过滤器,是相关的过滤器按钮。
<sankey-filter
label="string1"
v-model="filters.string1"
/>
<sankey-filter
label="string2"
v-model="filters.string2"
/>
<sankey-filter
label="string3"
v-model="filters.string3"
/>
data() {
return {
filters: {
statusString1: false,
statusString2: false,
statusString3: false,
}
watch: {
filters: {
handler: function(){
this.filterString1(),
this.filterString2(),
this.filterString2(),
},
deep: true
发布于 2022-08-02 03:53:48
Vue $watch
提供两个参数(newValue, oldValue)
的回调函数,这样U就可以检查每个过滤器的新值,如果每个过滤器的操作都是true
的话。
watch: {
filters: {
handler: function({statusString1, statusString2, statusString3}){
if (statusString1)
this.filterString1()
if (statusString2)
this.filterString2()
if (statusString3)
this.filterString3()
},
deep: true
}
}
发布于 2022-08-02 03:14:21
使用点分隔的路径作为观察键。
watch: {
'filters.string1' () {
this.filterString1(),
},
'filters.string2' () {
this.filterString2(),
},
'filters.string3' () {
this.filterString3(),
},
}
https://stackoverflow.com/questions/73201483
复制相似问题