因为 setState 不是同步的,而且会 batch 在一起^文件:
https://bit.ly/2NmOrBxhttps://stackblitz.com/edit/react-ndrcpa?file=index.js照文件修好之后像上面这样,应该是你要的结果,参考看看如果你的 setState 会依赖于上一个 state,那就应该改用this.setState((state,props) => newState) 这种形式去写才可以正常运算,不然会遇到很多先后顺序和 batch 的问题依赖于上一个 state: 比方说你先取用了 this.state 然后再运算再把运算结果丢去 this.setState({})这种写法就会有问题取用上一个 state, props 的东西都应该写在 this.setState((state, props) => 的这个 function 里面)