javascript - 删除发生在打开模式之前并确认删除

标签 javascript reactjs redux

我创建了一个对话框,要求确认删除日志。但我在删除日志时遇到问题。当我单击删除时,日志将被删除,而不是打开一个模式,询问用户是否确定删除。如果他们准备删除,他们将单击删除按钮,然后日志应该被删除。就我而言,删除是在打开模式之前发生的。我做错了什么?

handleDelete(key) {
  this.setState({ show: true });
  const logDeleteConfirmation = (
    <DeleteConfirmation
      hideDialog={this.props.hideDialog}
      logKey={key}
      onDelete={this.props.deleteLog(key)}
    />
  );
  this.props.showDialog(logDeleteConfirmation);
}


render() {
  return(
  <div className="col-md-6 text-right">
    <a
      className="text-danger"
      onClick={() => this.handleDelete(log.get("_id"))}
    >
      Delete
    </a>
  </div>
  )
}


class DeleteConfirmation extends React.PureComponent {
  handleDelete(key) {
    console.log("key", key);
    this.props.onDelete(key);
    this.props.hideDialog();
  }

  render() {
    return (
      <Modal show onHide={() => this.props.hideDialog()} className="md-box">
        <h1>Are you sure want to delete?</h1>
          <button
            onClick={() => this.handleDelete(this.props.logKey)}
          >
            Delete
          </button>
      </Modal>
    );
  }
}

最佳答案

在第一个组件中,在 onDelete 中删除 (key)

 <DeleteConfirmation
      hideDialog={this.props.hideDialog}
      logKey={key}
      onDelete={this.props.deleteLog(key)} //here
    />

只需 onDelete={this.props.deleteLog} 您调用此操作,而不是向其发送引用。

关于javascript - 删除发生在打开模式之前并确认删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44868316/

相关文章:

javascript - 如何覆盖禁用的 Material UI TextField 的全局边框颜色样式?

javascript - React Redux MapStateToProps

javascript - 无论结果如何,在 promise 之后执行次要行动?

javascript - 在 javascript 的新方法中使用构造函数中的 privat var

javascript - Div 滚动结束检测无法一致工作

javascript - jquery .js 加载长延迟

reactjs - 为什么我不能使用过滤器删除我的待办事项?

reactjs - 为 `Field` redux 组件构建高阶组件

javascript - 将时间存储在表单中以发送到 Jquery

javascript - Knockout.JS:从模型到 View 的不同值