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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐