UNPKG

@fruits-chain/react-native-xiaoshu

Version:
43 lines (34 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _helpers = require("../helpers"); var _useDestroyed = _interopRequireDefault(require("./useDestroyed")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * 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, _helpers.isFunction)(s) ? s(ls) : s; if ((0, _helpers.isObject)(ls)) { return { ...ls, ...value }; } return value; }); } }, [getDestroyed]); return [localState, updateState]; }; var _default = useStateUpdate; exports.default = _default; //# sourceMappingURL=useStateUpdate.js.map