收藏
回答

使用 Proxy() 监听对象,如果值被修改,如何即时渲染到页面?

使用 Proxy() 监听 this.data 内的某个对象,如果值被修改,如何即时渲染到页面?

data: {
  obj: {
    index: 0;
  }
}

function proxy1(target, prop, value) {
  let result = false;
  const proxy = new Proxy(target, {
    set(target, prop, value) {
      if (prop === "index" && value != 0) {
        return Reflect.set(...arguments);
      } else {
        result = true;
        return true;
      }
    },
  });
  proxy[prop] = value;
  return proxy;
}

proxy1(this.data.obj, "index", 0);
回答关注问题邀请回答
收藏

2 个回答

  • 小V书写
    小V书写
    2023-02-13

    可以加一个先监听后通知提醒

    2023-02-13
    有用
    回复 1
    • Qiu (吉²)
      Qiu (吉²)
      2023-02-13
      谢谢🙏
      2023-02-13
      回复
  • Mr.Zhao
    Mr.Zhao
    发表于移动端
    2023-02-13
    监听值被修改实现了吗
    2023-02-13
    有用
    回复 3
    • Qiu (吉²)
      Qiu (吉²)
      2023-02-13
      值被修改实现了,现在是修改成功后重新setData赋值渲染,不知道还有没有其它方法?
      2023-02-13
      回复
    • Mr.Zhao
      Mr.Zhao
      发表于小程序端
      2023-02-13回复Qiu (吉²)

      页面要修改必须this.setData 没其它办法

      2023-02-13
      回复
    • Qiu (吉²)
      Qiu (吉²)
      2023-02-13
      好的,谢谢🙏
      2023-02-13
      回复
登录 后发表内容