-
I want to setup my store with some APIs, in NextJs 14. // src/stores/counter-store.ts
import { createStore } from 'zustand/vanilla'
export type CounterState = {
count: number
loading: boolean
}
export type CounterActions = {
decrementCount: () => void
incrementCount: () => void
}
export type CounterStore = CounterState & CounterActions
export const initCounterStore = async (): Promise<CounterState> => {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1');
const data = await response.json();
console.log(data)
return {
count: data.id,
loading: false,
};
} catch (error) {
console.error('Error fetching data:', error);
return defaultInitState
}
}
export const defaultInitState: CounterState = {
count: 10,
loading: true,
}
export const createCounterStore = (
initState: CounterState = defaultInitState,
) => {
return createStore<CounterStore>()((set) => ({
...initState,
decrementCount: () => set((state) => ({ count: state.count - 1 })),
incrementCount: () => set((state) => ({ count: state.count + 1 })),
}))
} |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 6 replies
-
How is |
Beta Was this translation helpful? Give feedback.
-
@strizer9 would you mind sharing us a minimal repro on stackblitz? |
Beta Was this translation helpful? Give feedback.
How about something like this? https://stackblitz.com/edit/nextjs-klyfxf?file=stores%2Fcounter-store.ts