在reactjs中显示模态窗口

时间:2018-01-17 16:12:59

标签: reactjs

我根据以下基本示例定义了一个模态组件:
https://react-bootstrap.github.io/components/modal/

我的挑战是在点击整个应用程序中其他组件中声明的链接时显示它。

感谢您的时间和帮助。

2 个答案:

答案 0 :(得分:0)

您需要lift the state您的组件。像这样的东西

class Parent extends React.Component {
  constructor() {
    super();
    this.state = { showModal: false };
  }

  displayModal() {
    this.setState({showModal: true});
  }

  render() {
    return <Child showModal={this.state.showModal} onButtonClick={this.displayModal.bind(this)}
  }
}

对于孩子:

class Child extends React.Component {

  render() {
    return (
      <div>
        <Button onClick={this.props.onButtonClick}>
        <Modal open={this.props.showModal} onHide={...}>
          ...
        </Modal>
      </div>
    );
  }
}

答案 1 :(得分:0)

在最顶层的组件层次结构中导入模态代码,并在redux状态下存储一些modalStatus(如果使用的是redux) 并根据redux状态中的modalStatus值显示或取消显示模态。

如果不使用redux,任何其他州经理都会有类似的范例

如果没有使用任何状态管理器,那么很可能你的应用程序很小,只需将modalStatus保持在父组件的状态并将回调传递给各个组件