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