diff --git a/src/lib/recoil.ts b/src/lib/recoil.ts index 709408d..87a3beb 100644 --- a/src/lib/recoil.ts +++ b/src/lib/recoil.ts @@ -10,16 +10,16 @@ export function useRecoilObjectWithImmer (value: RecoilState) { function set> (f: (draft: Draft) => void | T): void function set> (data: any, value?: Draft[K]): void { if (typeof data === 'string') { - rawSet(produce(copy, (draft: Draft) => { + rawSet(pre => produce(pre, (draft: Draft) => { const key = data as K const v = value draft[key] = v })) } else if (typeof data === 'function') { const fn = data as (draft: Draft) => void | T - rawSet(produce(copy, fn) as T) + rawSet(pre => produce(pre, fn) as T) } else if (typeof data === 'object') { - rawSet(produce(copy, (draft: Draft) => { + rawSet(pre => produce(pre, (draft: Draft) => { const obj = data as Draft for (const key of Object.keys(obj)) { const k = key as keyof Draft