@@ -4,6 +4,7 @@ import type { AbstractStorage } from './storage';
44import { isNull , isUndefined } from 'lodash' ;
55import { useEffect , useMemo , useState } from 'react' ;
66
7+ import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect' ;
78import { LocalStorageService } from './localStorage' ;
89import { STRING_PARSER } from './parser' ;
910
@@ -64,12 +65,15 @@ export function useStorage<V, K = string>(
6465 } , [ SERVICE , defaultValue , deserializer , key , serializer ] ) ;
6566 const [ , setOriginValue ] = useState ( SERVICE . getItem ( key ) ) ;
6667
67- const updatesOfKey = updates . get ( key ) ;
68- if ( isUndefined ( updatesOfKey ) ) {
69- updates . set ( key , new Set ( [ setOriginValue ] ) ) ;
70- } else if ( ! updatesOfKey . has ( setOriginValue ) ) {
71- updatesOfKey . add ( setOriginValue ) ;
72- }
68+ // eslint-disable-next-line react-hooks/exhaustive-deps
69+ useIsomorphicLayoutEffect ( ( ) => {
70+ const updatesOfKey = updates . get ( key ) ;
71+ if ( isUndefined ( updatesOfKey ) ) {
72+ updates . set ( key , new Set ( [ setOriginValue ] ) ) ;
73+ } else if ( ! updatesOfKey . has ( setOriginValue ) ) {
74+ updatesOfKey . add ( setOriginValue ) ;
75+ }
76+ } ) ;
7377
7478 useEffect ( ( ) => {
7579 updates . get ( key ) ?. delete ( setOriginValue ) ;
0 commit comments