一、场景
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)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐