Przejdź do głównej zawartości

Function: createStoreContext()

createStoreContext<T>(displayName): object

Create a Context-based Zustand store pattern.

Returns Provider, useStore hook, and useApi hook — eliminates module-level singleton boilerplate (Turbopack duplication bug).

Type Parameters

T

T

Parameters

displayName

string

Returns

object

Provider

Provider: {(__namedParameters): FunctionComponentElement<ProviderProps<StoreApi<T> | null>>; displayName: string; }

Parameters

__namedParameters
children

ReactNode

store

StoreApi<T>

Returns

FunctionComponentElement<ProviderProps<StoreApi<T> | null>>

Provider.displayName

displayName: string

useApi

useApi: () => StoreApi<T>

Returns

StoreApi<T>

useStore

readonly useStore: {(): T; <U>(selector): U; } = useStoreHook

Call Signature

(): T

Returns

T

Call Signature

<U>(selector): U

Type Parameters
U

U

Parameters
selector

(s) => U

Returns

U

Example

const { Provider: CartProvider, useStore: useCartStore, useApi: useCartStoreApi } =
createStoreContext<CartState>('CartStore');

// In layout:
const cartStore = useRef(createCartStore());
<CartProvider store={cartStore.current}>{children}</CartProvider>

// In components:
const isOpen = useCartStore((s) => s.isOpen);
const api = useCartStoreApi(); // for .getState() in callbacks