use-hook-kits
Version:
  
21 lines (17 loc) • 523 B
JavaScript
import {useRef, useState, useEffect} from 'react';
const useStateCallback = (initialState) => {
const [state, setState] = useState(initialState);
const callback = useRef(null);
const setStateCallback = (val, cb) => {
callback.current = cb;
setState(val);
};
useEffect(() => {
if (callback.current) {
callback.current(state);
callback.current = null;
}
}, [state]);
return [state, setStateCallback];
};
export default useStateCallback