React Hooks useState异步问题

最近在开发中遇到一个问题 我接口请求回来的数据 用useState存储起来。

但是我后面 去改变这个数据的时候每次拿到都是上次的数据没办法及时更新。

  • 原因:
    • useState 返回的更新状态方法是异步的,要在下次重绘才能获取新值。不要试图在更改状态之后立马获取状态。
  • 解决方法:
    • 应该使用useRef 存储这个数据,在useEffect里监听data的变化
const dataRef = useRef()
const [data,setData] = useState[{}]
useEffect(() => {
	 dataRef.current =   data
}, [data])
  • 当我们想使用当前的数据的时候直接用dataRef.current 获取的就是当前最新的数据
console.log(dataRef.current)//最新的数据
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐