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); })
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。