WithSetter()
zustand 와 함께 사용할 수 있는 set 함수, reset 함수를 제공합니다. 기존의 간단한 set 함수도 직접 정의를 해야하는 불편함을 해소하기 위해 만들어졌습니다. zustand create, createStore 에서 middleware 로 사용할 수 있습니다.
Signature
withSetter: <T extends Obj, Mps extends [StoreMutatorIdentifier, unknown][] = [], Mcs extends [StoreMutatorIdentifier, unknown][] = []>(initializer: StateCreator<T, Mps, Mcs>) => StateCreator<IWithSetter<T>, Mps, Mcs>
Parameters
Parameter | Type | Description |
---|---|---|
initializer | StateCreator<T, Mps, Mcs> |
Returns
StateCreator<IWithSetter<T>, Mps, Mcs>
Example
import { withSetter } from '@toktokhan-dev/zustand-with-setter'
import { create } from 'zustand'
type Store = {
count: number
nested: {
count: number
}
}
const useStore = create(
withSetter<Store>(() => ({
count: 0,
nested: {
count: 0,
},
})),
)
const set = useStore((store) => store.set)
set({ count: 5, nested: { count: 5 } })
set((prev) => ({ count: prev.count + 1 }))
set('count', 5)
set('count', (prev) => prev + 1)
set('nested.count', 5)
set('nested.count', (prev) => prev + 1)
const reset = useStore((store) => store.reset)
reset()
reset('count')
reset({ count: 5 })