【问题标题】:react SetState not updaing state immediately反应 SetState 不立即更新状态
【发布时间】:2019-05-10 11:42:03
【问题描述】:

在删除单击时,我正在调用模式对话框,并使用删除成员的相应用户 ID 更新“用户 ID”状态。 setState 函数不更新值。 我怎样才能以任何其他方式实现这一目标。

删除点击处理程序

handleClickDialogOpen = (userid) => {   
    this.setState((state) => {
      return {
        open: true,
        UserID: userid,

      };
    });
    console.log(this.state)
  };

在模态对话中,在删除按钮上我无法获取 userId 的值

 <Button onClick={() => deleteSP(this.state.userID)} className={classes.agree}>
       Delete
</Button>

如何传递“deleteSP”的 ID

【问题讨论】:

标签: reactjs dialog modal-dialog


【解决方案1】:

setState 是异步的,你可以像这个例子那样做一个控制台日志,因为这个函数会在 setState 完成时触发

handleClickDialogOpen = userid => {
    this.setState({
        open: true,
        UserID: userid,
      },
      () => console.log(this.state),
    );
  };

【讨论】:

  • 这成功了。!如何将用户 ID 传递给此“deleteSP(this.state.userID)}”。它在执行 console.log 时显示“未定义”
  • 如果您尝试在 setState 下方调用该函数,则可能会发生状态尚未填充的情况,您可以尝试按照我在示例中为您提供的相同方式调用该函数,用 this.deleteSP(this.state.userId) 替换 console.log 另外,如果你的函数删除了它的状态,你可以在函数中获取状态的值,然后调用this.deleteSP
猜你喜欢
  • 2021-09-10
  • 2018-08-05
  • 2018-08-12
  • 2021-01-28
相关资源
最近更新 更多