Skip to content

如何重置状态

¥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

Zustand v5.0 中文网 - 粤ICP备13048890号