From b6d2bd3577545209383abb8c531745a4dbc3642d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=B6=E8=BF=9C=E6=96=B9?= Date: Thu, 9 Nov 2023 22:35:33 +0800 Subject: [PATCH] fix(useStorage): fix defaults not unwrapped (#3534) --- packages/core/useStorage/index.test.ts | 15 +++++++++++++++ packages/core/useStorage/index.ts | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/core/useStorage/index.test.ts b/packages/core/useStorage/index.test.ts index d797854866c..7211c8a98e4 100644 --- a/packages/core/useStorage/index.test.ts +++ b/packages/core/useStorage/index.test.ts @@ -467,4 +467,19 @@ describe('useStorage', () => { ref.value = 1 expect(console.error).toHaveBeenCalledWith(new Error('write item error')) }) + + it.each([ + 1, + 'a', + [1, 2], + { a: 1 }, + new Map([[1, 2]]), + new Set([1, 2]), + ])('should work in conjunction with defaults', (value) => { + const basicRef = useStorage(KEY, () => value, storage) + expect(basicRef.value).toEqual(value) + storage.removeItem(KEY) + const objectRef = useStorage(KEY, value, storage) + expect(objectRef.value).toEqual(value) + }) }) diff --git a/packages/core/useStorage/index.ts b/packages/core/useStorage/index.ts index 82dd5a240ea..4d718c0a11b 100644 --- a/packages/core/useStorage/index.ts +++ b/packages/core/useStorage/index.ts @@ -145,7 +145,7 @@ export function useStorage }, } = options - const data = (shallow ? shallowRef : ref)(defaults) as RemovableRef + const data = (shallow ? shallowRef : ref)(typeof defaults === 'function' ? defaults() : defaults) as RemovableRef if (!storage) { try {