pinia 自身提供了一个 reset 办法,能够重置 store
const store = useStore()
store.$reset()
然而 store 如果采纳 setup 写法的时候,应用 reset 办法,因为不反对所以会报错,如下图:
解决办法:
在 mian.ts 中为 pinia 注册 reset 办法,如下:
pinia.use(({store}) => {const initialState = JSON.parse(JSON.stringify(store.$state));
store.$reset = () => {store.$patch(($state) => {Object.assign($state, JSON.parse(JSON.stringify(initialState)));
});
}
})
然而发现了一个问题,不太明确:
store 中有如下两个变量:
//store.ts
const obj1 = ref({})
const obj2 = reactive({})
// 页面中应用
const {obj1, obj2} = storeToRefs(store)
页面中 obj1 能够被重置,obj2 并没有被重置,然而在 main.ts 中打印其实重置过了的,有晓得造成这种状况的起因吗?