重现步骤
[步骤]
1,新建测试uniapp项目;
2,新建两个页面 A 和 B,在A页面放置一个按钮,点击时 $emit 一个事件,在B页面的 onLoad 中接收
[结果]
第一次从 A 页面跳转到 B 页面时无法触发 $once 事件( $on 事件也一样无法触发),
从 B 返回到 A 再次点击按钮打开 B 页面才能触发 $on 的callback
[期望]
第一次也能触发 B 的 $on 事件
IDE运行环境说明
HBuilderX
[IDE版本号]
2.6.1
[windows版本号]
win10 企业版
uni-app运行环境说明
HBuilderX 的内置浏览器
[可重现代码片段]
A 页面(index.vue):
clickButton() {
uni.$emit('test', 'asdfasdf')
uni.navigateTo({
url: '../test/test'
})
}
B 页面(test.vue):
onReady() {
uni.$once('test', data => {
this.test = data
console.log('inner test: ', this.test) // 从第二次进入页面后可以取到值
})
console.log('outter test: ', this.test) // 任何时候都没有值
},
其他问题: 在 B 页面中 this.test 在 $once 的 calblack 中赋值后可以打印出值,但是在外层则打印不出值。
联系方式
656785105@qq.com
z***@foxmail.com
兄弟,你这个方法我试了也行不通,解决方案可以更具体一点吗
2020-08-03 09:47