Skip to content

Commit 3229251

Browse files
committed
fix prevValue not updating on value change
1 parent c53173d commit 3229251

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/hooks/useMMKV.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ export const useMMKVStorage = (key, storage, defaultValue) => {
2424
const prevKey = usePrevious(key);
2525
const prevStorage = usePrevious(storage);
2626

27-
const prevValue = usePrevious(value);
27+
const prevValue = useRef(value);
28+
29+
useEffect(() => {
30+
prevValue.current = value;
31+
},[value])
2832

2933
useEffect(() => {
3034
if (storage !== null) {
@@ -46,14 +50,12 @@ export const useMMKVStorage = (key, storage, defaultValue) => {
4650
const updateValue = useCallback((event) => {
4751
let type = getDataType(event.value);
4852
let _value = event.value ? methods[type]["copy"](event.value) : null;
49-
console.log(_value,type)
5053
setValue(_value);
5154
setValueType(type);
5255
}, []);
5356

5457
const setNewValue = useCallback(
5558
async (nextValue) => {
56-
console.log(nextValue);
5759
let updatedValue = nextValue;
5860
if (typeof nextValue === "function") {
5961
if (nextValue.constructor.name === "AsyncFunction") {
@@ -63,7 +65,7 @@ export const useMMKVStorage = (key, storage, defaultValue) => {
6365
);
6466
return;
6567
}
66-
updatedValue = nextValue(prevValue);
68+
updatedValue = nextValue(prevValue.current);
6769
}
6870

6971
let _value;
@@ -105,5 +107,5 @@ function usePrevious(value) {
105107
ref.current = value;
106108
}, [value]);
107109

108-
return ref.current;
110+
return ref.current
109111
}

0 commit comments

Comments
 (0)