使用vue3 和pinia做状态管理的时候,在调用action方法的时候报错。
具体报错:
Uncaught (in promise) TypeError: 'set' on proxy: trap returned falsish for property
示例代码:
import { defineStore } from 'pinia'
export const useUserStore = defineStore('user', {
// id必填,且需要唯一
// state
state: () => {
return {
user: undefined,
}
},
getters: {
getUser: (state) => {
return state.user
},
},
actions: {
storeChangeLog(user: any) {
this.user = user
},
},
})
在网上查了一下原因可能有:
1. store状态id并非唯一,导致冲突。(我的报错原因,即user这个store名字在其他store使用了)
2. state中定义的属性名字和getter方法中的方法名重复