【发布时间】:2020-10-19 23:33:41
【问题描述】:
首先检查我的react-bootstrap 代码:
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
show: false
};
}
handleShow = (e) => {
this.setState({ show: true });
};
handleClose = (e) => {
this.setState({ show: false });
};
render() {
return (
<div className="App">
<button onClick={this.handleShow}>Open Modal</button>
<Modal
size="lg"
centered={true}
show={this.state.show}
onHide={this.handleClose}
aria-labelledby="md-modal"
>
<Modal.Header>
First Modal
<button
type="button"
className="close"
onClick={this.handleClose}
>
X
</button>
</Modal.Header>
<Modal.Body>
Please <Content clicked={this.handleClose} /> to show New Content
</Modal.Body>
</Modal>
</div>
);
}
}
class Content extends React.Component {
constructor(props) {
super(props);
this.state = {
show: false
};
}
handleShow = (e) => {
this.props.clicked();
this.setState({ show: true });
};
handleClose = (e) => {
this.setState({ show: false });
};
render() {
return (
<>
<button onClick={this.handleShow}>Click Here</button>
<Modal
size="lg"
centered={true}
show={this.state.show}
onHide={this.handleClose}
aria-labelledby="md-modal"
>
<Modal.Header>
Second Modal
<button
type="button"
className="close"
onClick={this.handleClose}
>
X
</button>
</Modal.Header>
<Modal.Body>New Content</Modal.Body>
</Modal>
</>
);
}
}
我需要显示第二个模态,然后在单击第一个模态上的按钮后隐藏第一个模态。
您可以在此处查看演示: https://codesandbox.io/s/xenodochial-joliot-jl3qe
问题是当点击第一个模态的按钮时,两个模态都被隐藏了。
在这种情况下我可能需要使用 redux 吗?
【问题讨论】:
标签: javascript reactjs modal-dialog react-bootstrap