reactjs 如何在不使用过时的makeStyles的情况下将Drawer剪切到材质UI中的AppNar下?

abithluo  于 2022-12-22  发布在  React
关注(0)|答案(1)|浏览(108)

我目前使用的是最新的React v18与材质UI。makeStyles现在不赞成在材质UI中使用此版本的React。
我可以知道我如何在AppBar下剪辑Drawer吗?有很多解决方案,但都需要makeStyles,它与我的React版本冲突。
请参见代码here
我希望它看起来像这样,而不是像现在这样重叠:第一节第一节第一节第一节第一次

2vuwiymt

2vuwiymt1#

    • 更新**

不确定是否可以达到预期的结果,但是作为将Drawer完全裁剪到AppBar下的一种可能方法,除了添加zIndex之外,也许可以尝试按照以下步骤操作。
经过修改的分叉演示:codesandbox
首先导入并使用CssBaseline组件,因为它应用了MUI推荐的CSS重置(这将使AppBar按照MUI的预期填充顶部区域):
关于CssBaseline的更多信息

import CssBaseline from "@mui/material/CssBaseline";

  return (
    <Fragment>
      <CssBaseline />
  ...

其次,使用sx进一步样式化Drawer,以便留下一些空间供AppBar裁剪:

<Drawer
  anchor="left"
  open={anchorElNav["menu"]}
  onClose={toggleDropdown("menu", false)}
  sx={{
    zIndex: 1000,
    width: 150,
    [`& .MuiDrawer-paper`]: {
      pt: 9,
      width: 150,
    },
  }}
>
  <NavbarMenuDropdown
    toggleDropdown={toggleDropdown}
    navbarPages={navbarPages}
  />
</Drawer>

结果可以被进一步设计以匹配期望的结果,也许可以考虑由MUI引用这个例子,尽管它是针对永久抽屉的。

    • 原件**

也许可以尝试将zIndex添加到Drawer中,基本选项是使用sx属性:
有关MUI中sx属性的更多信息:document

<Drawer
  // 👇 Maybe this should be "left" as shown in the picture?
  anchor="top"
  open={anchorElNav["menu"]}
  onClose={toggleDropdown("menu", false)}
  // 👇 Add this because app bar has z-index of 1100, drawer 1200 by default
  sx={{ zIndex: 1000 }}
>
  <NavbarMenuDropdown
    toggleDropdown={toggleDropdown}
    navbarPages={navbarPages}
  />
</Drawer>

相关问题