【问题标题】:React State one state behindReact State 落后一个状态
【发布时间】:2021-04-09 18:42:15
【问题描述】:

所以我有一个非常小的程序,点击 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}]。那么如何获取当前的更新状态呢?

【问题讨论】:

    标签: reactjs react-native setstate


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-09
        • 1970-01-01
        • 2020-03-26
        • 2020-02-29
        • 2021-03-28
        • 2016-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多