react如何同步获取useState的最新状态值
作者:ass_ace
这篇文章主要介绍了react如何同步获取useState的最新状态值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
react同步获取useState的最新状态值
新的react hook写法
官方默认setState方法移除了回调函数,但我们有时候的业务场景需要我们同步拿到变量的最新变化值
以便做下一步操作,这时我们可以封装一个hook通过结合useref通过回调函数来拿到最新状态值。
代码如下
import {useEffect, useState, useRef} from "react";
 
 
function useCallbackState1 (state) {
    const cbRef = useRef();
    const [data, setData] = useState(state);
 
    useEffect(() => {
        cbRef.current && cbRef.current(data);
    }, [data]);
 
    return [data, function (val, callback) {
        cbRef.current = callback;
        setData(val);
    }];
}
 
export {useCallbackState};使用的时候像平常一样
回调函数可以传可以不传递
const [data,setData] = useCallbackState({});
 
setData({}, function (data) {
    console.log("啦啦啦,我是回调方法", data);
})总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
