乐趣区

关于vue3:vue3-pinia在store使用setup模式的时候调用reset方法

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 中打印其实重置过了的,有晓得造成这种状况的起因吗?

退出移动版