setState 的时候遇到了一个坑。
当时的需求是这样的,我们有一个modal dropdown,在点选了之后更新state,发起网络请求。
虽然没有使用Redux,但是为了统一性,网络请求的参数是从state里拿的。
问题就出在这,setState是异步操作,而我是在setState之后发起网络请求。
这个时候我就发现异步操作的美妙之处了。明明我就只是在setState里设置了几个String和number,然而,发起网络请求的时候居然还没set完!所以这个时候网络请求用的是之前的state数据。。。。。
mmp。。。
所以我才留意到setState还有另一个参数setState(updater[, callback])
用 callback 强行串行,done!🤷♂️
网友评论