UNPKG

@fruits-chain/react-native-xiaoshu

Version:
36 lines (35 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _isFunction = _interopRequireDefault(require("lodash/isFunction")); var _react = require("react"); var _index = require("../helpers/index.js"); var _useDestroyed = _interopRequireDefault(require("./useDestroyed.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * useState 类似 this.setState 可以传入部分字段更新 * @param state 状态 */ const useStateUpdate = state => { const [localState, setLocalState] = (0, _react.useState)(state); const getDestroyed = (0, _useDestroyed.default)(); const updateState = (0, _react.useCallback)(s => { if (!getDestroyed()) { setLocalState(ls => { const value = (0, _isFunction.default)(s) ? s(ls) : s; if ((0, _index.isObject)(ls)) { return { ...ls, ...value }; } return value; }); } }, [getDestroyed]); return [localState, updateState]; }; var _default = exports.default = useStateUpdate; //# sourceMappingURL=useStateUpdate.js.map