React中使用useState数据异步问题解决方法
react中useState异步问题
·
产生问题: 在React的函数组件中使用useState进行数据存储,导致数据异步,不能及时获取当前最新的数据。
原因: 这是因为React里事件分为合成事件和原生事件,合成事件和钩子函数都是异步的,原生事件是同步的。因为useState是异步事件,所以会出现不能及时获取到最新值的情况。
解决方法: 先使用useRef进行存储数据,再使用useEffect监听数据变化,并进行更新。
const [info, setInfo] = useState();
const infoRef = useRef();
useEffect(() => {
infoRef.current = info;
}, [info]);
在之后需要使用info数据的地方只需要获取infoRef.current即可获得最新的info数据内容。
更多推荐
已为社区贡献3条内容
所有评论(0)