见附件
- 发布:2020-07-28 08:54
- 更新:2020-08-11 22:21
- 阅读:588
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.8.2
手机系统: Android
手机系统版本号: Android 10
手机厂商: 小米
手机机型: 红米note7
页面类型: nvue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
见Bug描述
见Bug描述
实际结果:
见Bug描述
见Bug描述
bug描述:
在tabbar第一个页面中,使用子组件,子组件监听了第一个页面的值
问题来了: 当切换tabbar为第二个页面的时候,会触发第一个页面中组组件内的watch,导致出现报错
app-nvue、微信小程序均正常,只有h5出现报错
附件运行:
需要在app.vue、pages/tabbar/index/index中把请求改成路径改成自己的再测试
最佳回复
仔细看了代码,问题应该是出在 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