uniapp引用pinia,app端白屏报错:reportJSException >>>> exception function:createInstanceContext...

一、场景
uniapp引用pinia,app端进入应用白屏。

reportJSException >>>> exception function:createInstanceContext,
exception:white screen cause create instanceContext failed,check js
stack -> /at useStore (app-service.js:2309:15)

二、分析
问题出现的原因就是store实例环境还没加载。
代码层面问题出现的位置在store.js文件里,通过$subscribe实现持久化这块。

三、解决
加上定时器,延时2s再让它持久化

四、扩展

import {
	defineStore
} from 'pinia';

export const useUserStore = defineStore({
	id: "user",
	// 使用defineStore方法定义store
	state() {
		// state表示这个store里的状态,也就是存放数据的地方
		return {
			userInfo: {
				username: null,
				avatar: null
			}
		}
	},
	actions: {}
})
// 通过$subscribe实现持久化,
setTimeout(() => {
	const instance = useUserStore();
	instance.$subscribe((mutation, state) => {
		uni.setStorageSync(instance.$id, JSON.stringify(state))
	});
	const val = uni.getStorageSync(instance.$id);
	if (val) {
		instance.$state = JSON.parse(val);
	}
}, 2000)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值