【发布时间】:2020-12-20 17:20:26
【问题描述】:
我正在尝试借助按钮从另一个反应组件打开一个 materialUI 对话框组件。想要的结果是每次我单击按钮时它都会打开对话框。 当前的结果是,它仅在我每第二次单击该按钮时打开。
你们中有人知道为什么会发生这种情况吗?我必须使用 useeffect() Hook 吗?
这是带有按钮的父组件的代码sn-p:
const [showModal, setShowModal] = useState(false);
const saveButtonHandler1 = async () => {
function showModalHandler() {
setShowModal(!showModal);
.... some other code.....
}}
这是子对话框组件的代码sn-p:
export default function MaxWidthDialog(props) {
useEffect(() => {
handleClickOpen();
}, []);
const classes = useStyles();
const [open, setOpen] = React.useState(false);
const [fullWidth, setFullWidth] = React.useState(true);
const [maxWidth] = React.useState("sm");
const handleClickOpen = () => {
setOpen(true);
setTimeout(() => setOpen(false), 16000);
};
const handleClose = () => {
setOpen(false);
};
/* const handleMaxWidthChange = event => {
setMaxWidth(event.target.value);
}; */
const handleFullWidthChange = (event) => {
setFullWidth(event.target.checked);
};
return (
<React.Fragment>
<Dialog
fullWidth={fullWidth}
maxWidth={maxWidth}
open={open}
onClose={handleClose}
aria-labelledby="max-width-dialog-title"
>
<DialogTitle id="max-width-dialog-title"></DialogTitle>
<DialogContent>
<DialogContentText>
<CanvasLoading />
</DialogContentText>
</DialogContent>
<DialogActions></DialogActions>
</Dialog>
</React.Fragment>
);
}
【问题讨论】:
标签: reactjs modal-dialog material-ui react-component