zarm
Version:
基于 React 的移动端UI库
23 lines (20 loc) • 664 B
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import * as React from 'react';
function useSafeState(initialState) {
var _React$useState = React.useState(initialState),
_React$useState2 = _slicedToArray(_React$useState, 2),
state = _React$useState2[0],
setState = _React$useState2[1];
var mounted = React.useRef(false);
React.useEffect(function () {
mounted.current = true;
return function () {
mounted.current = false;
};
}, []);
var update = React.useCallback(function (nextState) {
mounted.current && setState(nextState);
}, []);
return [state, update];
}
export default useSafeState;