我正在使用MUI组件,并在每个类别后添加一个分隔符.有没有办法排除最后一个类别之后的分隔符?

enter image description here

这是我的代码;(分隔符就在下面, 标签

    export const MenuItemGroup = ({ label, items, menuVariant, onItemClick }: MenuItemGroupProps) => {
  return (
    <Box>
      <>
        {label !== undefined && label !== null ? (
          <Box sx={{ margin: '16px', marginBottom: '8px' }}>
            <Typography variant="body2medium" sx={{ color: 'var(--sds-ref-color-base-black70)' }}>
              {label}
            </Typography>
          </Box>
        ) : (
          <></>
        )}
      </>
      <>
        {items &&
          items.map((item, itemIndex) => {
            return <MenuItem key={itemIndex} item={item} menuVariant={menuVariant} onItemClick={onItemClick} />;
          })}
      </>
    </Box>
  );
};

const MenuGroupSection = ({ label, groups, menuVariant, onItemClick }: MenuGroupSectionProps) => {
  return (
    <Stack direction="column" sx={{ display: 'flex', width: '100%' }}>
      {label !== undefined && label !== null ? (
        <>
          <Box sx={{ margin: '16px', marginBottom: '8px' }}>
            <Typography variant="body2semibold" sx={{ color: '#000000' }}>
              {label}
            </Typography>
          </Box>
        </>
      ) : (
        <></>
      )}
      <Stack direction="row" sx={{flexWrap: 'wrap', display:'grid' , gridTemplateColumns : 'auto auto' }}>
        {groups &&
          groups.map((group, index) => {
            return (
              <MenuItemGroup
                key={index}
                label={group.label}
                items={group.items as MenuItemNode[]}
                onItemClick={onItemClick}
                menuVariant={menuVariant}
              ></MenuItemGroup>
            );
          })}
      </Stack>
      <Divider sx={{ marginLeft: '16px', marginRight: '16px' }} />
    </Stack>
  );
};

推荐答案

一种方法是向MenuGroupSection组件传递一个prop,指示它是最后一个prop:

const MenuGroupSection = ({ label, groups, menuVariant, onItemClick, isLast }: MenuGroupSectionProps) => {

然后,只有当它不是最后一个时才渲染除法器:

{!isLast ? <Divider sx={{ marginLeft: '16px', marginRight: '16px' }} /> : null}

对你有用吗?

Css相关问答推荐

为什么图像加载请求没有显示在我的网络请求中?

导航栏没有使用nextui获取页面的全部宽度

Prettier/VS Code 在 CSS 中的 !important 之前添加一个空格,导致它在 WordPress 中崩溃

禁用MUI DataGrid上的悬停效果

使用 place-content: center 的全宽 CSS 网格项目

如何在真实文本旁边制作文本阴影,使其看起来像 css 中的重复文本?

CSS动画移动divs upwords

有条件地覆盖 CSS 中的 AntD Select 样式

CSS和 Select 器 - 我可以 Select 具有多个类的元素吗?

边界半径不起作用

为什么我们将