红米手机 redmi K30 uni-app pinia 获取有问题

红米手机 redmi K30 uni-app pinia 获取有问题

信息类别 详细信息
产品分类 uni小程序SDK
手机系统 Android
手机系统版本号 Android 12
手机厂商 小米
手机机型 miui13 系统
页面类型 vue
SDK版本号 unimpsdk 4.36

示例代码:

const beforeGoPublish = () => {  
  // Toast(`${getStorage('Authorization')}`)  
  Toast(`${useUserStore().loading}`)  
  // console.log(useUserStore().userInfo.id)  
  try {  
    // Toast(`哈哈哈${useUserStore().userInfo.id}`)  
    Toast(`嘻嘻嘻${useUserStore().loading}`)  
  } catch (error) {  
    Toast(`哈哈哈2${error}`)  
  }  
  if (getStorage('Authorization')) {  
    if (useUserStore().loading) return  
    const userPhone = useUserStore().userInfo.mobile  
    if (userPhone) {  
      emits('handle-tap')  
    } else {  
      useUserStore()  
        .send()  
        .then((res: any) => {  
          emits('handle-tap')  
        })  
    }  
  } else {  
    openLoginVC({}, () => {  
      getTokenVC()  
    })  
  }  
}

操作步骤:

useUserStore().loading 打印出来是undefined, ios 打印出来是 false

预期结果:

安卓打印出来是 false 或者true

实际结果:

useUserStore().loading 为 undefined

bug描述:

使用pinia方法, useUserStore().loading 打印出来是undefined, ios 打印出来是 false


更多关于红米手机 redmi K30 uni-app pinia 获取有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在android平台js都是运行在v8中的,先确认是在特定android设备还是所有设备都会出现这个问题?

更多关于红米手机 redmi K30 uni-app pinia 获取有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


从代码和问题描述来看,这是一个在Redmi K30(Android 12/MIUI13)上出现的Pinia状态获取不一致的问题。以下是分析要点:

  1. 平台差异问题:
  • iOS正常获取到false值
  • 安卓获取到undefined
  • 表明问题与平台相关,可能是安卓特定环境下的兼容性问题
  1. 可能原因:
  • Pinia store未在安卓端正确初始化
  • 安卓端可能触发了不同的生命周期顺序
  • MIUI系统可能对某些JS API有特殊处理
  1. 建议检查:
  • 确保store在组件挂载前已正确注册
  • 检查store的loading状态初始值是否正确定义
  • 在安卓端调试查看完整的store对象内容
  1. 临时解决方案:
const loading = useUserStore().loading || false
回到顶部