uni-app中uni.redirectTo方法缺少eventChannel属性
uni-app中uni.redirectTo方法缺少eventChannel属性
操作步骤:
在App.vue中加入代码
uni.redirectTo({
url: "/pages/tabbar/recharge",
success: (res) => {
console.log("success>>>", res.eventChannel);
},
complete: (res) => {
console.log("complete>>>", res.eventChannel);
},
fail: (err) => {
console.error(err);
}
})
预期结果:
回调函数success或complete中的参数带eventChannel属性
实际结果:
回调函数success或complete中的参数没带eventChannel属性
bug描述:
回调函数success或complete中的参数没带eventChannel属性

| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | mac 12.2 | HBuilderX |
| HBuilderX | 4.04 | |
| Chrome | 122.0.6261.129 |
更多关于uni-app中uni.redirectTo方法缺少eventChannel属性的实战教程也可以访问 https://www.itying.com/category-93-b0.html
eventChannel 是 和被打开页面进行通信,比如A通过 uni.redirectTo打开了B,A已经已经不存在了
更多关于uni-app中uni.redirectTo方法缺少eventChannel属性的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,uni.redirectTo 方法确实没有 eventChannel 属性。eventChannel 是 uni.navigateTo 方法中的一个可选参数,用于在页面跳转时传递数据和事件。
如果你需要在页面跳转时传递数据,可以考虑以下几种替代方案:
1. 使用 uni.navigateTo 代替 uni.redirectTo
如果你不需要关闭当前页面,可以使用 uni.navigateTo,它支持 eventChannel 属性。
uni.navigateTo({
url: '/pages/targetPage/targetPage',
events: {
someEvent: function(data) {
console.log('Received data:', data);
}
},
success: function(res) {
res.eventChannel.emit('someEvent', { message: 'Hello from source page' });
}
});
2. 通过 URL 参数传递数据
你可以通过 URL 参数传递数据,然后在目标页面中解析这些参数。
// 源页面
uni.redirectTo({
url: '/pages/targetPage/targetPage?message=Hello'
});
// 目标页面
onLoad: function(options) {
console.log('Received message:', options.message);
}
3. 使用全局变量或 Vuex
你可以使用全局变量或 Vuex 来存储和传递数据。
// 源页面
globalData.message = 'Hello';
uni.redirectTo({
url: '/pages/targetPage/targetPage'
});
// 目标页面
onLoad: function() {
console.log('Received message:', globalData.message);
}
4. 使用 uni.$emit 和 uni.$on
你可以使用 uni.$emit 和 uni.$on 来在页面之间传递事件和数据。
// 源页面
uni.$emit('someEvent', { message: 'Hello' });
uni.redirectTo({
url: '/pages/targetPage/targetPage'
});
// 目标页面
onLoad: function() {
uni.$on('someEvent', function(data) {
console.log('Received message:', data.message);
});
}

