diff --git a/dist/index.cjs.js b/dist/index.cjs.js index ce66e8e..ea16cef 100644 --- a/dist/index.cjs.js +++ b/dist/index.cjs.js @@ -146,7 +146,13 @@ function shallowEqual(objA, objB) { var oldState; function useStore(mapContextToState, initialState) { - var _useState = React.useState(initialState), + var defaultState = initialState; + + if (oldState && !initialState) { + defaultState = oldState; + } + + var _useState = React.useState(defaultState), _useState2 = _slicedToArray(_useState, 2), state = _useState2[0], setState = _useState2[1]; diff --git a/dist/index.esm.js b/dist/index.esm.js index 4ac12ec..eafc82a 100644 --- a/dist/index.esm.js +++ b/dist/index.esm.js @@ -139,7 +139,13 @@ function shallowEqual(objA, objB) { var oldState; function useStore(mapContextToState, initialState) { - var _useState = useState(initialState), + var defaultState = initialState; + + if (oldState && !initialState) { + defaultState = oldState; + } + + var _useState = useState(defaultState), _useState2 = _slicedToArray(_useState, 2), state = _useState2[0], setState = _useState2[1]; diff --git a/src/useStore.js b/src/useStore.js index 303546b..248da96 100644 --- a/src/useStore.js +++ b/src/useStore.js @@ -5,7 +5,13 @@ import shallowEqual from './shallowEqual'; let oldState; export default function useStore(mapContextToState, initialState) { - const [state, setState] = useState(initialState); + let defaultState = initialState; + + if (oldState && !initialState) { + defaultState = oldState; + } + + const [state, setState] = useState(defaultState); oldState = state; useEffect(() => {