这时,我们可以利用eventChannel来实现。 一、eventChannel简介 eventChannel是uni-app提供的一个用于页面间通信的机制。它允许在不同的页面之间建立一个事件通道,通过发送和监听事件来传递数据。使用eventChannel可以在不同的页面之间传递更复杂的数据结构,如对象、数组等。 二、页面跳转与对象传参的实现 在跳转页面创建event...
const eventChannel=this.getOpenerEventChannel() let orderInfo={}//监听acceptDataFromDistributionGuidance事件,获取上一页面通过eventChannel传送到当前页面的数据eventChannel.on('acceptDataFromDistributionGuidance',function(data) { orderInfo={ ...data.data }// data为接收到的数据console.log('$', data) })th...
$scope.eventChannel.off('acceptDataFromOpenedPage'); } } 3. uni.emit和uni.emit 和 uni.emit和uni.on uniapp提供了全局的事件总线功能,可以通过uni.$emit触发事件,通过uni.$on监听事件。 示例: 在A页面触发事件: javascript uni.$emit('myEvent', { name: 'Tom', age: 20 }); 在B页面监听...
// 通过eventChannel向被打开页面传送数据 res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'data from starter page' }) } }); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 详情页面: onLoad(option) { const eventChannel = this.getOpenerEventChannel(); // 监听acceptDataFromOpene...
eventChannel.emit("acceptDataFromOpenerPage", { data: '通过事件通道返回时传递数据' }) 1. 2. 3. 4. 如上代码,我们在点击按钮的时候,获取事件通道,然后通过 emit 方法来传递数据,这个方法接收两个参数,第一个参数是一个字符串,这个字符串是我们在接收数据的页面中定义的(两边要一致,自己定义),第二个参...
如上代码,我们在 onLoad 生命周期中通过 this.getOpenerEventChannel() 方法来获取到事件通道,然后通过 eventChannel.on 方法来接收数据,这个方法接收两个参数,第一个参数是我们在跳转页面中定义的字符串,第二个参数是一个回调函数,这个回调函数中的参数就是我们传递过来的数据。
eventChannel EventChannel 和被打开页面进行通信 示例 //在起始页面跳转到test.vue页面并传递参数 uni.navigateTo({ url: 'test?id=1&name=uniapp' }); // 在test.vue页面接受参数 export default { onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数 console.log(option.id); ...
1.Options语法:this.getOpenerEventChannel() 2.Composition语法:getCurrentInstance().proxy.getOpenerEventChannel() 2.使用事件总线 // 触发一个全局的事件(在触发事件之前一定要先监听)uni.$emit('事件名称',{data:{}})onload(){// 监听uni.$on('事件名称',(data)=>{})}onUnload(){// 取消监听uni.$off...
使用Vue3做uniapp项目,如何在下一个页面使用eventChannel 使用uni.navigateTo() 传递参数比较麻烦,官网中提到的两个传递方法,一个是拼接在 url 中,一个使用 eventChannel 向被打开页面传送数据。 因为传递的数据是一个对象,第一个方法使用拼接传输不实用,第二个方法需要用到 this,但是项目使用的是 vue3 的,没有th...
eventChannel 方式一 下级传上级 下级传递数据 goBackHome() { uni.navigateBack({ delta: 1 }) //跳转成功以后传递一个事件 const eventChannel = this.getOpenerEventChannel(); eventChannel.emit('acceptDataFormDetail02', { data: '将detail02页面的数据传递给Home页面' ...