1***@qq.com
1***@qq.com
  • 发布:2023-03-20 17:43
  • 更新:2023-06-21 11:46
  • 阅读:1104

【报Bug】vue3 使用 pinia,安卓端报错白屏

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 13.2.1

HBuilderX类型: 正式

HBuilderX版本号: 3.6.18

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: 华为

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

使用 pinia,安卓端报错白屏

预期结果:

正常打包

实际结果:

使用 pinia,安卓端报错白屏

bug描述:

使用 pinia,安卓端报错白屏

reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->  
 at useStore (app-service.js:5518:15)
2023-03-20 17:43 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

我解决了,留个参考吧,不一定适应所有人

  1. main.ts 中要 return { Pinia }
  2. vue 文件中使用, usexxxStore() 要在 setup 之后调用
  3. ts 文件中使用, usexxxStore() 放在函数内部调用,不要在 ts 文件顶部 import 之后就调用,这样会报错
  • [已删除]

    我之前也是遇到这问题,不值得是bug还是机制,反正官方没解决过

    2023-03-21 10:30

  • 2***@qq.com

    ts 文件中使用, usexxxStore() 放在函数内部调用,不要在 ts 文件顶部 import 之后就调用,这样会报错这句是什么含义

    2023-09-12 15:56

[已删除]

[已删除]

import {useUserStore} from '@/stores/user.js'
let user=useUserStore()

这样写就会报错,你试试把第二句放在生命周期里面

  • 1***@qq.com (作者)

    尝试了将 usexxxStore() 放在 setup 之后可以正常执行,但是在 .ts 文件中使用还是会报相同的错误导致白屏

    2023-03-21 09:50

YUANRJ

YUANRJ

使用方法参考文档,如确认框架问题,请提供可复现的测试工程。

  • Sun_Rise

    遇到这个问题了,vue页面import一个js文件,这个js文件中如果有引入pinia,则在app端报错,web不报错

    2023-09-21 13:57

1***@qq.com

1***@qq.com

可以检测是不是每个usexxxStore()都是在setup执行,有些公共的地方可以能会初始化比较早,所以报错,比如请求的公共方法封装

  • 2***@qq.com

    那这种怎么处理呢

    2023-09-12 14:08

  • 1***@qq.com

    回复 2***@qq.com: 只能逻辑延迟执行,必须保证在setup内执行

    request(options = {}) {

    // 不能在顶部初始化,在uniapp打包后执行会报错

    if (tokenStore == null) {

    tokenStore = useTokenStore();

    }


    }

    2023-10-07 18:43

要回复问题请先登录注册