vue 使用 pinia 完全替换 state 中对象,响应式损坏怎么解决?

535 阅读1分钟

如题,当我们在actions创建的setXXX函数完全的替换state中的对象时,state的响应式将失效。getter不会触发更新。

getter:{
	getUserInfo(){
		return this.userInfo ?? {}	
	},
	getUserName(){
		// 若直接使用state中的数据则不会有问题
		// return this.userInfo.name
		
		// 若使用getter的数据,则不会更新
		return this.getUserInfo.name
	}
},
actions:{
	// !更改userInfo,getUserName将会失效
	setUserInfo(userInfo){
		this.userInfo = userInfo
	}
}

官方文档中,也有所提示。但现在我需要解决这个问题,怎么办?

image.png