首页 > 解决方案 > prevstate 有什么用?

问题描述

当我们不使用 prevstate 时,代码是这样的:

state = {
   count: 0
}
updateCount = () => {
    this.setState({ count: this.state.count + 1}); \\count = 0 + 1 = 1
    this.setState({ count: this.state.count + 1});
    this.setState({ count: this.state.count + 1});
    this.setState({ count: this.state.count + 1});
}

所以在这个永远 setState 当前计数值被使用。因此,在第一个 setState 中 this.state.count = 0 + 1 = 1。然后在第二个 setState 中,this.state.count 的值将是 1,因此它将增加 1,即 this.state.count = 1 + 1 = 2;

但事实并非如此。为什么?那么为什么我们需要这样的prestate:

updateCount = () => {
    this.setState(prevstate => ({ count: prevstate.count + 1}));
    this.setState(prevstate => ({ count: prevstate.count + 1}));
    this.setState(prevstate => ({ count: prevstate.count + 1}));
    this.setState(prevstate => ({ count: prevstate.count + 1}));
}

标签: reactjs

解决方案


推荐阅读