uni-app在小米手机中路由传值方式会失效,传值页面无法接收到传来的数据
uni-app在小米手机中路由传值方式会失效,传值页面无法接收到传来的数据
信息项 | 内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | w11 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.23 |
手机系统 | 全部 |
手机厂商 | 小米 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
测试过的手机:
- Xiaomi HyperOS 1.0.8.0.UMBCNXM
示例代码:
uni.$emit('toFailData',{id})
let url = '/pages/secondary/check/fail?id=3'
console.log(url,'即将调整');
uni.navigateTo({
url:url,
})
uni.$off('toFailData')
uni.$once('toFailData',res=>{
console.log(res);
})
console.log(e);
操作步骤:
跳转前给路由带值
uni.$emit('toFailData',{id})
let url = '/pages/secondary/check/fail?id=3'
console.log(url,'即将调整');
uni.navigateTo({
url:url,
})
接受地方接受就是空的
uni.$off('toFailData')
uni.$once('toFailData',res=>{
console.log(res);
})
console.log(e);
预期结果:
能接受到值
实际结果:
接收到的是空的
bug描述:
路由传值的方式在小米手机里面接收不了
更多关于uni-app在小米手机中路由传值方式会失效,传值页面无法接收到传来的数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app在小米手机中路由传值方式会失效,传值页面无法接收到传来的数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在uni-app中,路由传值通常是通过页面跳转携带参数来实现的。如果在小米手机中遇到路由传值失效的问题,可能是由于多种原因导致的,比如系统缓存、页面生命周期问题、或者参数传递方式不正确等。这里提供一些常见的路由传值方式和相关的代码案例,你可以根据这些案例进行排查和修复。
1. 使用navigateTo
传值
这是uni-app中最常用的页面跳转方式之一。你可以在跳转时携带参数,然后在目标页面中通过onLoad
方法接收。
跳转页面代码:
uni.navigateTo({
url: '/pages/targetPage/targetPage?param1=value1¶m2=value2'
});
目标页面代码:
Page({
onLoad: function (options) {
console.log(options.param1); // 输出: value1
console.log(options.param2); // 输出: value2
}
});
2. 使用全局变量或Vuex传值
如果参数较为复杂或者需要在多个页面间共享,可以考虑使用全局变量或Vuex进行状态管理。
全局变量代码:
// 在main.js或app.js中定义全局变量
const global = getApp().globalData;
global.sharedData = {
param1: 'value1',
param2: 'value2'
};
// 在目标页面中访问全局变量
Page({
onLoad: function () {
const app = getApp();
console.log(app.globalData.sharedData.param1); // 输出: value1
}
});
3. 使用本地存储传值
对于需要在不同页面间持久化存储的数据,可以使用uni-app提供的本地存储API。
存储数据代码:
uni.setStorageSync('sharedKey', { param1: 'value1', param2: 'value2' });
读取数据代码:
Page({
onLoad: function () {
const data = uni.getStorageSync('sharedKey');
console.log(data.param1); // 输出: value1
}
});
排查建议
- 确保在小米手机中使用的uni-app版本是最新的,因为旧版本可能存在已知的bug。
- 检查页面生命周期函数,确保在正确的时机接收和处理参数。
- 如果问题依然存在,可以尝试在不同的手机或模拟器上测试,以排除是小米手机特有的问题。
通过上述方法和代码案例,你应该能够定位并解决在小米手机中路由传值失效的问题。如果问题依然无法解决,建议查看uni-app的官方文档或社区,寻求更具体的帮助。