When value is assigned to components state, why console.log prints the previous state?

后端 未结 5 1357
死守一世寂寞
死守一世寂寞 2020-11-30 09:26

I\'m sending values of numbers from Numbers component to Main component. Everything is working fine until I set that value in my Main component to that component\'s state.<

5条回答
  •  隐瞒了意图╮
    2020-11-30 09:41

    From the docs:

    setState() does not immediately mutate this.state but creates a pending state transition. Accessing this.state after calling this method can potentially return the existing value. There is no guarantee of synchronous operation of calls to setState and calls may be batched for performance gains.

    If you want to print the change after a call to setState, use the optional callback parameter:

    this.setState({
        number: num
    }, function () {
        console.log(this.state.number);
    });
    

提交回复
热议问题