@freakycoder/react-use-state-with-callback
Version:
Make the useState hook with a callback for React and React Native
22 lines • 828 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
function useStateWithCallback(initialState) {
const [state, _setState] = (0, react_1.useState)(initialState);
const callbackRef = (0, react_1.useRef)();
const isFirstCallbackCall = (0, react_1.useRef)(true);
const setState = (0, react_1.useCallback)((setStateAction, callback) => {
callbackRef.current = callback;
_setState(setStateAction);
}, []);
(0, react_1.useEffect)(() => {
if (isFirstCallbackCall.current) {
isFirstCallbackCall.current = false;
return;
}
callbackRef.current?.(state);
}, [state]);
return [state, setState];
}
exports.default = useStateWithCallback;
//# sourceMappingURL=useStateWithCallback.js.map