UNPKG

@fruits-chain/react-native-xiaoshu

Version:
31 lines (30 loc) 850 B
"use strict"; import isFunction from 'lodash/isFunction'; import { useState, useCallback } from 'react'; import { isObject } from "../helpers/index.js"; import useDestroyed from "./useDestroyed.js"; /** * useState 类似 this.setState 可以传入部分字段更新 * @param state 状态 */ const useStateUpdate = state => { const [localState, setLocalState] = useState(state); const getDestroyed = useDestroyed(); const updateState = useCallback(s => { if (!getDestroyed()) { setLocalState(ls => { const value = isFunction(s) ? s(ls) : s; if (isObject(ls)) { return { ...ls, ...value }; } return value; }); } }, [getDestroyed]); return [localState, updateState]; }; export default useStateUpdate; //# sourceMappingURL=useStateUpdate.js.map