我无法弄清楚如何使用 Material UI 的对话框来渲染模态,在单击按钮时关闭它们,并使其点击不同的东西会产生不同的模态。
这是我从 Material UI 中获取的对话框组件
import React from 'react';
import Button from '@material-ui/core/Button';
import Dialog from '@material-ui/core/Dialog';
import DialogActions from '@material-ui/core/DialogActions';
import DialogContent from '@material-ui/core/DialogContent';
import DialogContentText from '@material-ui/core/DialogContentText';
import DialogTitle from '@material-ui/core/DialogTitle';
class DialogBox extends React.Component {
render() {
return (
<Dialog
open={this.props.open}
onClose={this.props.handleClose}
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitle id="alert-dialog-title">{"Use Google's location service?"}</DialogTitle>
<DialogContent>
<DialogContentText id="alert-dialog-description">
Let Google help apps determine location. This means sending anonymous location data to
Google, even when no apps are running.
</DialogContentText>
</DialogContent>
<DialogActions>
<Button onClick={this.props.handleClose} color="primary">
Okay
</Button>
</DialogActions>
</Dialog>
);
}
}
export default DialogBox;
这是我在其中渲染对话框的页面,我在此处将其称为 Modal。我如何制作它以便我可以在对话框打开时关闭它,并且我可以点击不同的图片并让它打开一个带有不同文本的对话框?
import React,{Component} from "react";
import home from "./home.png";
import car from "./car.png";
import bed from "./bed.png";
import pet from "./pet.png";
import Dialog from "./Modal.js";
class Scenarios extends Component {
constructor(){
super();
this.state = { open: false };
}
openModal = () =>{
this.setState({ open: true });
}
handleClose = () => {
this.setState({ open: false });
};
render() {
return (
<section className="App-scenarios">
<h2> Quick Tips </h2>
<p>Know What to Do in Different Scenarios during an Earthquake</p>
<div className="scenario-group">
<div className="scenario" onClick={this.openModal}>
<img src={car}/>
</div>
<div className="scenario" onClick={this.openModal}>
<img src={home}/>
<Dialog open={this.state.open} onClose={this.handleClose} title="Home" description="text" />
</div>
<div className="scenario" >
<img src={bed}/>
</div>
<div className="scenario">
<img src={pet}/>
</div>
</div>
</section>
);
}
};
export default Scenarios;