我再react中使用zustand。我想增加命名空间。一直报错?-灵析社区

PX_13

我再react中使用zustand。我想增加命名空间,代码如下,vscode一直提示![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/03aa22194665c392aa6b57dcd8c964d3.png) import { create, StateCreator } from "zustand" type AboutState = { count: number increase: (n?: number) => void decrease: () => void } type HomeState = { n: number increase: (n?: number) => void decrease: () => void } type Store = { about: AboutState home: HomeState } const createAbout: StateCreator = (set) => { return { count: 0, increase: (n = 1) => set((state) => ({ count: state.count + n })), decrease: () => set((state) => ({ count: state.count - 1 })), } } const createHome: StateCreator = (set) => { return { n: 0, increase: (n = 1) => set((state) => ({ n: state.n + n })), decrease: () => set((state) => ({ n: state.n - 1 })), } } export const useStore = create()((...set) => ({ about: createAbout(...set), home: createHome(...set), }))

阅读量:166

点赞量:0

问AI
看着感觉你是不是想要下面这种: type PartialSet = (s: (state: T) => Partial) => unknown; const createAbout = (set: PartialSet) => { return { count: 0, increase: (n = 1) => set((state) => ({ count: state.count + n })), decrease: () => set((state) => ({ count: state.count - 1 })), } } const createHome = (set: PartialSet) => { return { n: 0, increase: (n = 1) => set((state) => ({ n: state.n + n })), decrease: () => set((state) => ({ n: state.n - 1 })), } } export const useStore = create()((set) => ({ about: createAbout((innerSet) => set(state => ({ about: {...state.about, ...innerSet(state.about)} }))), home: createHome((innerSet) => set(state => ({ home: {...state.home, ...innerSet(state.home)} }))), })) // 使用方式: useStore().about.count) useStore().about.increase();