تايب سكريبت - إضافة وسيط الاستمرارية إلى متجر زوستاند


أريد إضافة وسط دائم (persist middleware) إلى useGlobalStore الخاص بي. أريد التعامل هناك (تعيين وجلب) البيانات لمخزن الجلسات. بحثت في الوثائق لكن لم أتمكن من العثور على إجابة حول كيفية دمج وظائف 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>>

الإجابة رقم 1

https://github.com/pmndrs/zustand#middleware

يمكنك العثور عليه تحت كيفية توصيل الميدلويرز

const createStore = pipe(persistor, devtools, create)
create<Store>(....store )

ينبغي أن يعمل هذا في حالتك