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
  • Image
  • Image
  • Image

示例代码:

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

1 回复

更多关于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&param2=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的官方文档或社区,寻求更具体的帮助。

回到顶部