将持久化中间件添加到 zustand 存储
Adding persist middleware to zustand store
我想向我的 useGlobalStore
添加持久化中间件。我想在那里处理(设置和获取)会话存储的数据。我查看了 documentation 但找不到如何将我的 create
和 persist
函数组合在一起的答案。
这是我的 useGlobalStore
:
interface Store extends HeatMapState, WeeklyOverviewState, MonthlyOverviewState, GlobalState, UserState {}
export const useGlobalStore = create<Store>(
devtools((set, get, api) => ({
...heatMapSlice(set as SetState<HeatMapState>, get as GetState<HeatMapState>, api as StoreApi<HeatMapState>),
...weeklyOverviewSlice(
set as SetState<WeeklyOverviewState>,
get as GetState<WeeklyOverviewState>,
api as StoreApi<WeeklyOverviewState>,
),
...monthlyOverviewSlice(
set as SetState<MonthlyOverviewState>,
get as GetState<MonthlyOverviewState>,
api as StoreApi<MonthlyOverviewState>,
),
...globalStateSlice(set as SetState<GlobalState>, get as GetState<GlobalState>, api as StoreApi<GlobalState>),
...userStateSlice(set as SetState<UserState>, get as GetState<UserState>, api as StoreApi<UserState>),
})),
) as UseBoundStore<Store, StoreApi<Store>>
https://github.com/pmndrs/zustand#middleware
您可以在 How to pipe middlewares
下找到它
const createStore = pipe(persistor, devtools, create)
create<Store>(....store )
这应该适合你的情况
我想向我的 useGlobalStore
添加持久化中间件。我想在那里处理(设置和获取)会话存储的数据。我查看了 documentation 但找不到如何将我的 create
和 persist
函数组合在一起的答案。
这是我的 useGlobalStore
:
interface Store extends HeatMapState, WeeklyOverviewState, MonthlyOverviewState, GlobalState, UserState {}
export const useGlobalStore = create<Store>(
devtools((set, get, api) => ({
...heatMapSlice(set as SetState<HeatMapState>, get as GetState<HeatMapState>, api as StoreApi<HeatMapState>),
...weeklyOverviewSlice(
set as SetState<WeeklyOverviewState>,
get as GetState<WeeklyOverviewState>,
api as StoreApi<WeeklyOverviewState>,
),
...monthlyOverviewSlice(
set as SetState<MonthlyOverviewState>,
get as GetState<MonthlyOverviewState>,
api as StoreApi<MonthlyOverviewState>,
),
...globalStateSlice(set as SetState<GlobalState>, get as GetState<GlobalState>, api as StoreApi<GlobalState>),
...userStateSlice(set as SetState<UserState>, get as GetState<UserState>, api as StoreApi<UserState>),
})),
) as UseBoundStore<Store, StoreApi<Store>>
https://github.com/pmndrs/zustand#middleware
您可以在 How to pipe middlewares
const createStore = pipe(persistor, devtools, create)
create<Store>(....store )
这应该适合你的情况