tony马
tony马
  • 发布:2019-08-03 22:00
  • 更新:2020-07-27 19:51
  • 阅读:22124

uniapp watch深度监听,app无效,H5可以

分类:uni-app

watch前后(newValue和oldValue)值一样的情况下,app监听不会被调用

2019-08-03 22:00 负责人:无 分享
已邀请:
程咬金3斧头

程咬金3斧头

确实有这个问题

  • 愚者

    尽命三锤吧,用尽全身力气向敌人挥出三锤,为人民服务


    2020-07-27 19:41

陈晨1

陈晨1

您好,vue的watch是数据变化才会触发的。另外我写了个demo,也没有出现您说的 watch深度监听前后(newValue和oldValue)值一样的情况下,app监听不会被调用,h5可以 的问题,您可以看一下

  • 程咬金3斧头

    哦哦,当前页面监听是没问题的。题主说的是深度监听。比如说使用getCurrentPages()获取到上一个页面,然后修改该页面的数据,h5可以监听到,app就不行。貌似是最近新版本的问题。不过目前也可以使用事件监听来处理。


    2019-10-14 18:05

6***@qq.com

6***@qq.com

昨天更新完就不行了

8***@qq.com

8***@qq.com

现在小程序 也无法监听 watch 了

愚者

愚者 - 70

。。

x***@163.com

x***@163.com

请问你们这个问题解决了吗?我们当前遇到相同的问题,深度监听时监听对象第一次传入值跟第二次一样,就不会改变。

  • tony马 (作者)

    不用深度监听了,换方式了,最笨的方式,自己传值过去


    2019-12-26 17:29

  • x***@163.com

    回复 tony马: 我现在这边解决方案就是在旧的对象里面加入一个事件参数


    2019-12-27 14:04

  • l***@126.com

    回复 tony马: 好像绑定数组长度,数组长度变化了,更笨穿不过去这个值,坑啊,这做动态添加组件的页面基本废了


    2020-01-05 15:25

  • l***@126.com

    这样的话只能考 emit 全局触发事件去通知子组件了,况且小程序的 watch 监听不能用,在H5 平台这样没问题,我试过


    2020-01-05 15:27

  • x***@163.com

    回复 l***@126.com: 目前我们找到原因来。原因是uniapp做优化。如果key相同的话,对象在H5可以重新渲染,但是在真机上不行。只要把key不要用index就行来。


    2020-01-15 10:41

子寒

子寒

值一样还监听个屁,吐了

愚者

愚者 - 70

加immediate: true

该问题目前已经被锁定, 无法添加新回复