choin
choin
  • 发布:2020-07-28 08:54
  • 更新:2020-08-11 22:21
  • 阅读:588

【报Bug】h5监听bug【已上传附件】

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.8.2

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: 红米note7

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

见附件

预期结果:

见Bug描述

实际结果:

见Bug描述

bug描述:

在tabbar第一个页面中,使用子组件,子组件监听了第一个页面的值
问题来了: 当切换tabbar为第二个页面的时候,会触发第一个页面中组组件内的watch,导致出现报错
app-nvue、微信小程序均正常,只有h5出现报错

附件运行:
需要在app.vue、pages/tabbar/index/index中把请求改成路径改成自己的再测试

2020-07-28 08:54 负责人:无 分享
已邀请:

最佳回复

jxtian

jxtian

仔细看了代码,问题应该是出在 c-page-state 里的计算属性里依赖了一个获取当前路由的函数, 切换页面导致
pageMainRequestState() 更新, 组件也更新了:

  computed: {  
      pageMainRequestState() {  
          console.log('this.$store.state.pageMainRequestState', this.$store.state.pageMainRequestState)  
          return this.$store.state.pageMainRequestState[this.$currentPagePath()];  
      },  
  },  

  $currentPagePath() {  
      var pages = getCurrentPages();  
      var page = pages[pages.length - 1];  
      return page.route;  
  },  

如果需要获取当前路径,可以通过 props 在组件初始化的时候传进去。

  • choin (作者)

    那我为何小程序没问题呢?所以我郁闷的在这啊,如果说都有问题,那肯定写的哪里不合适。现在只在一个h5下有问题,所以我才觉得是bug呀

    2020-08-04 21:00

  • jxtian

    回复 choin: 各端表现不一样,我再了解一下,就你这个问题来说应该是上面的情况,感谢反馈

    2020-08-07 15:05

  • choin (作者)

    回复 jxtian: 感谢,希望能给予一个答案,弄了好几天没搞明白问题所在之处。给我的感觉像是uni在h5端的调用顺序可能与小程序平台不一样,所以产生了这种问题。

    2020-08-07 17:49

choin

choin (作者)

求解决

choin

choin (作者)

求解决

jxtian

jxtian

确认bug,等待处理

  • choin (作者)

    千呼万唤,重于来了~太好了

    2020-07-29 15:59

choin

choin (作者)

我发现这个问题,在发行后就不出现了
是关闭了调试错误输出吗?? 还是其他可能性?

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