React State 落后一个状态

React State one state behind

所以我有一个非常小的程序,在点击 TouchableOpacity 时我将一个项目添加到我的数组中。所以相同的代码看起来像

  // Initial state is []
  onClick = () => {
    this.setState(
      {
        arr: this.state.arr.concat({a: 1, b: 2}),
      },
      console.log(this.state.arr), // gives []
    );
  };

setState回调函数中的console.log是在一个状态后面。在 nextClick 上,它给出的状态为 [{"a": 1, "b": 2}]。那么如何获取当前更新状态呢?

您没有在 回调 中传递 console.log(...)。尝试以下操作:-

  onClick = () => {
    this.setState(
      {
        arr: this.state.arr.concat({a: 1, b: 2}),
      },
      ()=>console.log(this.state.arr), //
    );

我认为您打算将 回调 作为第二个参数传递,但现在您直接调用 console.log

改成() => console.log(this.state.arr),

就可以了