首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于多个按钮单击的Vue监视器

用于多个按钮单击的Vue监视器
EN

Stack Overflow用户
提问于 2022-08-02 02:52:09
回答 2查看 68关注 0票数 1

我有多个过滤器,它们被设置为false,如果被单击,则将其变为true,并且必须实现特定的筛选器。如何使用观察者来寻找我的过滤器从假到真的变化。目前,由于我有我的所有功能在一个观察者,如果一个过滤器被点击,所有的过滤器都实现了。然而,我需要它只是特定的过滤器,是相关的过滤器按钮。

代码语言:javascript
运行
复制
<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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-02 03:53:48

Vue $watch提供两个参数(newValue, oldValue)的回调函数,这样U就可以检查每个过滤器的新值,如果每个过滤器的操作都是true的话。

代码语言:javascript
运行
复制
watch: {
    filters: {
      handler: function({statusString1, statusString2, statusString3}){
        if (statusString1)
           this.filterString1()
        if (statusString2)
           this.filterString2()
        if (statusString3)
           this.filterString3()
      },
      deep: true
    }
}
票数 0
EN

Stack Overflow用户

发布于 2022-08-02 03:14:21

使用点分隔的路径作为观察键。

代码语言:javascript
运行
复制
watch: {
    'filters.string1' () {
       this.filterString1(),
     },
    'filters.string2' () {
       this.filterString2(),
     },
    'filters.string3' () {
       this.filterString3(),
     },
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73201483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档