ahooks
Version:
react hooks library
26 lines (25 loc) • 969 B
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _useUnmountedRef = _interopRequireDefault(require("../useUnmountedRef"));
function useSafeState(initialState) {
var unmountedRef = (0, _useUnmountedRef["default"])();
var _useState = (0, _react.useState)(initialState),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
state = _useState2[0],
setState = _useState2[1];
var setCurrentState = (0, _react.useCallback)(function (currentState) {
/** if component is unmounted, stop update */
if (unmountedRef.current) {
return;
}
setState(currentState);
}, []);
return [state, setCurrentState];
}
var _default = exports["default"] = useSafeState;