为useState添加回调函数:
function useCallbackState(od) {
const cbRef = useRef();
const [data, setData] = useState(od);
useEffect(() => {
cbRef.current && cbRef.current(data);
}, [data]);
return [
data,
function (d, callback) {
cbRef.current = callback;
setData(d);
}
];
}
强刷函数:
const useUpdate = () => {
const [, setState] = useState({});
return useCallback(() => setState({}), []);
}