gpt4 book ai didi

reactjs - MUI - 删除抽屉中的覆盖层?

转载 作者:行者123 更新时间:2023-12-03 14:02:44 26 4
gpt4 key购买 nike

我正在尝试使用 Drawer 组件,我注意到当抽屉被输入 prop open={true} 时,有一个默认的灰色覆盖层底层页面/div。

是否有经 Material 批准的最佳实践方法来消除调光?我在设置 prop variant={"persistent"} 方面取得了部分成功。这会停止变暗,但它也迫使我添加一个关闭按钮来关闭抽屉。

我正在寻找的是抽屉在其边界外单击时可关闭,并且当它打开时我希望调光消失(不诉诸按钮来关闭抽屉)。

我查看了文档并尝试传递 Prop

variant={"持久"}

这消除了覆盖层,但现在当我点击抽屉外部时,它不会自动关闭。

<Drawer 
open={open}
anchor="top"
onClose={toggleDrawer}
variant={"persistent"}
modal={true}
>

我想让调光消失(不使用按钮)。

是否有任何经过 Material 批准的选项?我可以尝试 CSS hack,但我不想破坏 Material 的 CSS 或出现重叠闪烁问题。

最佳答案

您可以添加BackdropProps={{无形:true}}

工作示例:

import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import Drawer from "@material-ui/core/Drawer";
import Button from "@material-ui/core/Button";
import List from "@material-ui/core/List";
import ListItem from "@material-ui/core/ListItem";
import ListItemIcon from "@material-ui/core/ListItemIcon";
import ListItemText from "@material-ui/core/ListItemText";
import InboxIcon from "@material-ui/icons/MoveToInbox";
import MailIcon from "@material-ui/icons/Mail";

const useStyles = makeStyles({
list: {
width: 250
}
});

export default function TemporaryDrawer() {
const classes = useStyles();
const [state, setState] = React.useState({
top: false,
left: false,
bottom: false,
right: false
});

const toggleDrawer = (side, open) => event => {
if (
event.type === "keydown" &&
(event.key === "Tab" || event.key === "Shift")
) {
return;
}

setState({ ...state, [side]: open });
};

const sideList = side => (
<div
className={classes.list}
role="presentation"
onClick={toggleDrawer(side, false)}
onKeyDown={toggleDrawer(side, false)}
>
<List>
{["Inbox", "Starred", "Send email", "Drafts"].map((text, index) => (
<ListItem button key={text}>
<ListItemIcon>
{index % 2 === 0 ? <InboxIcon /> : <MailIcon />}
</ListItemIcon>
<ListItemText primary={text} />
</ListItem>
))}
</List>
</div>
);

return (
<div>
<Button onClick={toggleDrawer("left", true)}>Open Left</Button>
<Drawer
BackdropProps={{ invisible: true }}
open={state.left}
onClose={toggleDrawer("left", false)}
>
{sideList("left")}
</Drawer>
</div>
);
}

Edit Invisible Backdrop

相关文档链接:

关于reactjs - MUI - 删除抽屉中的覆盖层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58020202/

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