【问题标题】:Managing opening and closing of reusable Modal in React+Redux在 React+Redux 中管理可重用 Modal 的打开和关闭
【发布时间】:2019-04-28 20:44:09
【问题描述】:

我正在尝试使用 React+Redux 创建一个可重用的 Modal,但我无法正确管理相同的打开和关闭。

模态框需要在单击父组件上的链接时打开,并且需要在单击模态框内的按钮时关闭。

问题 1 我尝试使用 React Refs https://reactjs.org/docs/refs-and-the-dom.html 并且一切正常,但是根据 Refs 的文档,该方法似乎不是正确的方法(或者可能是理解错误)。有人可以解释一下吗?

问题 2 我一直在尝试使用 props 和 state 来触发 Model 的打开和关闭。管理这个的最好方法是什么?是否通过在父级中添加切换功能并使用它,以便在父级中的每次单击时,子级都会更新并再次呈现?在这种情况下如何处理关闭?

【问题讨论】:

标签: reactjs redux react-redux


【解决方案1】:

您可以在父状态中设置模态属性来控制模态的显示,并将其作为道具传递给它一个关闭函数,当您想要切换它时,将状态从模态设置为 false。

toggleModal() {
  this.setState({
    modal: !this.state.modal
})
}

<Modal show={this.state.modal} close={this.state.toggleModal} />

模态的相关部分:

  onClose(e) {
      this.props.close && this.props.close(e);
  }

  render() {
    if (!this.props.show) {
      return null;
    }
    return (
      <div
        className="custom-modal"
        id="modal"
      >
        <div className="modal-content">
          <div className="modal-close" onClick={this.onClose}>
            X
          </div>
          {this.props.children}
        </div>
      </div>
    );
  }

【讨论】:

    猜你喜欢
    • 2021-03-23
    • 1970-01-01
    • 2015-04-24
    • 2020-02-22
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    相关资源
    最近更新 更多