問題闡述:
a: uni.$emit('name',data)
uni.navigateTo({url:b})
b:onload(){
uni.$on('name',(res)=>{
this.name=res
console.log(this.name)
})
}
用以上寫法來跨頁面?zhèn)鲄?huì)發(fā)現(xiàn)在b頁面,雖然能夠接受到參數(shù)但是賦值到data時(shí)候沒生效,雖然控制臺(tái)能夠打印出數(shù)據(jù),但是頁面上面并不會(huì)動(dòng)態(tài)改變。用setTimeout包裹也沒有用
如果想要用$emit和 $on來跨頁面?zhèn)鲄?,只適合以下情況文章來源:http://www.zghlxwxcb.cn/news/detail-683832.html
a頁面->b頁面
a頁面$on('name',()=>{
setTimeout(()=>{})
}) b頁面$emit
也就是說$on監(jiān)視器聲明一定要在觸發(fā)前才能用
解決方法
如果想要實(shí)現(xiàn)a->b傳值可以這樣文章來源地址http://www.zghlxwxcb.cn/news/detail-683832.html
a: uni.navigateTo({
url: url,
success: (res) => {
res.eventChannel.emit("data", data);
},
});
b: onLoad() {
const eventChannel = this.getOpenerEventChannel();
eventChannel.on("data", (res) => {
});
},
到了這里,關(guān)于uniapp onLoad生命周期 uni.$on接受參數(shù)無法改變data數(shù)據(jù)解決辦法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!