uni-app 页面之间传值第一次获取不到值
在使用$emit传递参数或者对象、数组时第一次获取不到传递过去的数据
//A页面
uni.$emit("updataNum", 10);
//B页面
onLoad() {
uni.$on("updataNum", data => {
this.list = data
console.log(this.list)//第一次获取不到
});
},
onUnload() {
uni.$off('updataNum')//每次销毁监听,不然重复监听
},
解决办法:在传递的时候加个延迟,大于或者等于500毫秒就可以
//A页面
setTimeout(() => {
uni.$emit("updataNum", 10);
}, 500)
//B页面
onLoad() {
uni.$on("updataNum", data => {
this.list = data
console.log(this.list)//10
});
},
onUnload() {
uni.$off('updataNum')//每次销毁监听,不然重复监听
},