背景:我们在vue页面和nvue页面之间进行传值可以使用uni.$emit和uni.$onsh事件监听实现,官网描述:
而且官网上也明确说明了:
在使用这个的时候碰到了问题,就是说vue页面->nvue页面传值,在nvue页面无法通过this.xxx=data这样赋值给nvue页面的data数据,很奇怪。
在vue页面:(在这个页面设置延迟)
在nvue页面:
但是一有这个情况不可能全放进去,不太现实
思路:在你使用emit的页面使用1个on嵌套 然后去你想on接收的页面触发上面1个on的事件(这个方法是网上找的,大佬说可以实现,我没试过。)
onUnload() {
uni.$off('need');
},
methods: {
price: function(id) {
uni.$on('need',()=>{
uni.$emit('price', {
msg:'传参'
})
});
}
}
onLoad() {
uni.$on('price',(res)=>{
this.msg = res.msg;
});
uni.$emit('need');
},
onUnload() {
uni.$off('price');
}
补充:在研究这个情况的时候,曾一度以为是this指向出现问题,其不再指向当前Vue
实例而是指向别处导致无法赋值,如果上面的方法不行可以看看是否this指向问题。
没有测试,但网上查到有说直接接可以正常显示传递的数据
自己使用可以正常传递并赋值
因篇幅问题不能全部显示,请点此查看更多更全内容
怀疑对方AI换脸可以让对方摁鼻子 真人摁下去鼻子会变形
女子野生动物园下车狼悄悄靠近 后车司机按喇叭提醒
睡前玩8分钟手机身体兴奋1小时 还可能让你“变丑”
惊蛰为啥吃梨?倒春寒来不来就看惊蛰
男子高速犯困开智能驾驶出事故 60万刚买的奔驰严重损毁