主题
如何重置状态
¥How to reset state
可以使用以下模式将状态重置为其初始值。
¥The following pattern can be used to reset the state to its initial value.
ts
const useSomeStore = create<State & Actions>()((set, get, store) => ({
// your code here
reset: () => {
set(store.getInitialState())
},
}))
一次重置多个存储
¥Resetting multiple stores at once
ts
import type { StateCreator } from 'zustand'
import { create: actualCreate } from 'zustand'
const storeResetFns = new Set<() => void>()
const resetAllStores = () => {
storeResetFns.forEach((resetFn) => {
resetFn()
})
}
export const create = (<T>() => {
return (stateCreator: StateCreator<T>) => {
const store = actualCreate(stateCreator)
storeResetFns.add(() => {
store.setState(store.getInitialState(), true)
})
return store
}
}) as typeof actualCreate
CodeSandbox 演示
¥CodeSandbox Demo