收藏
回答

如何监听data数据变化,执行业务?

data:{
  pro:undefined,
  delay:500,
  isBuffer:false
},

fn(aaa){
    //节流函数
  util.throttle(function(aaa){
        if(this.data.isBuffer){
          this.setData({
            pro:"xxxx",
            isBuffer:false
          });
        }
    }, this.data.delay);
},
functionA(){
  this.data.isBuffer=true;
  //这里如何监听到 this.data.pro !=undefined
  if(this.data.pro !=undefined){
    functionB();
  }
},
functionB(){}


页面data有个数据pro 一开为undefined,页面点击某个按钮,将会调用functionA方法,该方法会将变量this.data.isBuffer改成true

当this.data.isBuffer=true节流函数会修改fn(aaa) this.data.pro, functionA方法如何判断this.data.pro已经修改了,有修改会调用functionB方法



最后一次编辑于  2023-11-27
回答关注问题邀请回答
收藏

3 个回答

  • showms
    showms
    2023-11-27

    如果是在自定义组件里面,用observers可以实现,如果是在page可以了解一下Object.defineProperty,可以给对象指定getter,setter方法,当值发生变化时会触发setter方法

    2023-11-27
    有用
    回复
  • Charlie
    Charlie
    2023-11-27

    "当this.data.isBuffer=true节流函数会修改fn(aaa) this.data.pro"

    调用functionA,修改了isBuffer为true,fn就会自动执行吗?

    2023-11-27
    有用
    回复 2
    • 彭嘉
      彭嘉
      2023-11-28
      会自动执行
      2023-11-28
      回复
    • 彭嘉
      彭嘉
      2023-11-28
      不管有没有修改,fn 是一直在执行的
      2023-11-28
      回复
  • ㅤ
    2023-11-27

    var that = this

    that.data.....

    that.setData({

    })

    试试看


    2023-11-27
    有用
    回复
登录 后发表内容