setState 异步操作的坑

2018-03-16  本文已影响0人  tsiic

setState 的时候遇到了一个坑。

当时的需求是这样的,我们有一个modal dropdown,在点选了之后更新state,发起网络请求。

虽然没有使用Redux,但是为了统一性,网络请求的参数是从state里拿的。

问题就出在这,setState是异步操作,而我是在setState之后发起网络请求。

这个时候我就发现异步操作的美妙之处了。明明我就只是在setState里设置了几个String和number,然而,发起网络请求的时候居然还没set完!所以这个时候网络请求用的是之前的state数据。。。。。

mmp。。。

所以我才留意到setState还有另一个参数setState(updater[, callback])
用 callback 强行串行,done!🤷‍♂️

  1. https://reactjs.org/docs/react-component.html#setstate
上一篇 下一篇

猜你喜欢

热点阅读