gpt4 book ai didi

reactjs - 使用 react-material-ui 关闭全屏对话框后 OnClick 监听器不起作用

转载 作者:行者123 更新时间:2023-12-04 11:59:34 24 4
gpt4 key购买 nike

当调用关联的“OnClose”函数时,全屏对话框出现问题。对话框关闭,但是我无法再次打开。
关于为什么会发生这种情况的任何想法?感觉就像 Canvas 上有一个不可见的对话框,可以防止事件冒泡到按钮或类似的东西。

import React from "react";
import Button from "@material-ui/core/Button";
import Dialog from "@material-ui/core/Dialog";
import "./FooterBar.css";
import Slide from "@material-ui/core/Slide";
import AppBar from "@material-ui/core/AppBar";
import Toolbar from "@material-ui/core/Toolbar";
import IconButton from "@material-ui/core/IconButton";
import CloseIcon from "@material-ui/icons/Close";

class BarItem extends React.Component {
constructor(props) {
super(props);
this.state = {
title: props.title,
targetURL: props.targetURL,
dialogOpen: false
};
this.barItemClicked = this.barItemClicked.bind(this);
this.handleClose = this.handleClose.bind(this);
}

barItemClicked() {
this.setState({
dialogOpen: true
});
}

handleClose() {
this.setState({
dialogOpen: false
});
}

render(props) {
const Transition = React.forwardRef(function Transition(props, ref) {
return <Slide direction="up" ref={ref} {...props} />;
});
return (
<div>
<Button onClick={this.barItemClicked}>{this.state.title}</Button>
<Dialog
fullScreen
open={this.state.dialogOpen}
onClose={this.handleClose}
TransitionComponent={Transition}
>
<AppBar>
<Toolbar>
<IconButton
edge="start"
color="inherit"
onClick={this.handleClose}
aria-label="Close"
>
<CloseIcon />
</IconButton>
</Toolbar>
</AppBar>
</Dialog>
</div>
);
}
}

class FooterBar extends React.Component {
render() {
return (
<div class="footerbar">
<BarItem title="Impressum" targetURL="a" />
<BarItem title="Datenschutzerklärung" targetURL="b" />
<BarItem title="Kontakt" targetURL="c" />
</div>
);
}
}
export default FooterBar;

我希望页脚栏的按钮重新打开对话框,但这不会发生。

最佳答案

看起来问题出在您的 TransitionComponent ,您正在将它的一个新实例传递给您的 Dialog每次渲染。尝试在您的 BarItem 之外声明它类(class)。

另外,根据您想在模态中显示的内容,我发现将模态和处理程序放在您的 FooterBar 中会更好。成分。看看this sandbox我从你的代码创建的。也许它会给你一些想法。

如果有帮助,请告诉我。

关于reactjs - 使用 react-material-ui 关闭全屏对话框后 OnClick 监听器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56561139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com