Reactjs “默认值”;插图「;属性填充。ListItemText组件

Reactjs “默认值”;插图「;属性填充。ListItemText组件,reactjs,material-ui,Reactjs,Material Ui,我正在使用material ui在React应用程序中设置嵌套列表的样式。默认的“inset”属性padding太大(56px),所以我试图覆盖该默认值。但我不能。 有什么建议吗?谢谢 <Fragment> <ListItem button onClick={this.handleClick}> <ListItemText primary="Zones"

我正在使用material ui在React应用程序中设置嵌套列表的样式。默认的“inset”属性padding太大(56px),所以我试图覆盖该默认值。但我不能。 有什么建议吗?谢谢

     <Fragment>
        <ListItem button onClick={this.handleClick}>
          <ListItemText
            primary="Zones"            
            primaryTypographyProps={{ variant: 'subtitle2' }}
        />
          {this.state.open ? <ExpandLess /> : <ExpandMore />}
        </ListItem>
        <Collapse in={this.state.open} timeout="auto" unmountOnExit>
          <List component="div" disablePadding>
            <ListItem button             
              component={Link}
              to={`${this.props.match.url}/zone/all-zones`}
              onClick={THIS.handleMenuOpen}
            >
              <ListItemText
                inset                
                primary="Show all"
                primaryTypographyProps={{ variant: 'subtitle2' }}
              />
            </ListItem>
          </List>
        </Collapse>
      </Fragment>

{this.state.open?:}
列表项文本的目的是将没有图标的项目文本与有图标的项目文本对齐(请参阅)。它不是缩进嵌套列表项的

如果查看,您会发现缩进是通过应用于嵌套列表项的
paddingLeft
完成的。在演示中,这被设置为32px(
theme.spating(4)
),但您可以将其设置为任何您想要的值

以下是嵌套列表演示中的示例:

import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import ListSubheader from "@material-ui/core/ListSubheader";
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 Collapse from "@material-ui/core/Collapse";
import InboxIcon from "@material-ui/icons/MoveToInbox";
import DraftsIcon from "@material-ui/icons/Drafts";
import SendIcon from "@material-ui/icons/Send";
import ExpandLess from "@material-ui/icons/ExpandLess";
import ExpandMore from "@material-ui/icons/ExpandMore";
import StarBorder from "@material-ui/icons/StarBorder";

const useStyles = makeStyles(theme => ({
  root: {
    width: "100%",
    maxWidth: 360,
    backgroundColor: theme.palette.background.paper
  },
  nested: {
    paddingLeft: theme.spacing(4)
  }
}));

export default function NestedList() {
  const classes = useStyles();
  const [open, setOpen] = React.useState(true);

  const handleClick = () => {
    setOpen(!open);
  };

  return (
    <List
      component="nav"
      aria-labelledby="nested-list-subheader"
      subheader={
        <ListSubheader component="div" id="nested-list-subheader">
          Nested List Items
        </ListSubheader>
      }
      className={classes.root}
    >
      <ListItem button>
        <ListItemIcon>
          <SendIcon />
        </ListItemIcon>
        <ListItemText primary="Sent mail" />
      </ListItem>
      <ListItem button>
        <ListItemIcon>
          <DraftsIcon />
        </ListItemIcon>
        <ListItemText primary="Drafts" />
      </ListItem>
      <ListItem button onClick={handleClick}>
        <ListItemIcon>
          <InboxIcon />
        </ListItemIcon>
        <ListItemText primary="Inbox" />
        {open ? <ExpandLess /> : <ExpandMore />}
      </ListItem>
      <Collapse in={open} timeout="auto" unmountOnExit>
        <List component="div" disablePadding>
          <ListItem button className={classes.nested}>
            <ListItemIcon>
              <StarBorder />
            </ListItemIcon>
            <ListItemText primary="Starred" />
          </ListItem>
        </List>
      </Collapse>
    </List>
  );
}
从“React”导入React;
从“@material ui/core/styles”导入{makeStyles}”;
从“@material ui/core/ListSubheader”导入列表子标题;
从“@material ui/core/List”导入列表;
从“@material ui/core/ListItem”导入ListItem;
从“@material ui/core/ListItemIcon”导入ListItemIcon;
从“@material ui/core/ListItemText”导入ListItemText;
从“@material ui/core/Collapse”导入折叠;
从“@material ui/icons/MoveToInbox”导入收件箱;
从“@material ui/icons/Drafts”导入绘图图标;
从“@material ui/icons/Send”导入SendIcon;
从“@material ui/icons/ExpandLess”导入ExpandLess;
从“@material ui/icons/ExpandMore”导入ExpandMore;
从“@material ui/icons/StarBorder”导入StarBorder;
const useStyles=makeStyles(主题=>({
根目录:{
宽度:“100%”,
最大宽度:360,
背景色:theme.palete.background.paper
},
嵌套的:{
paddingLeft:主题。间距(4)
}
}));
导出默认函数NestedList(){
const classes=useStyles();
const[open,setOpen]=React.useState(true);
常量handleClick=()=>{
setOpen(!open);
};
返回(
{打开?:}
);
}
列表项文本的目的是将没有图标的项目文本与有图标的项目文本对齐(请参阅)。它不是缩进嵌套列表项的

如果查看,您会发现缩进是通过应用于嵌套列表项的
paddingLeft
完成的。在演示中,这被设置为32px(
theme.spating(4)
),但您可以将其设置为任何您想要的值

以下是嵌套列表演示中的示例:

import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import ListSubheader from "@material-ui/core/ListSubheader";
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 Collapse from "@material-ui/core/Collapse";
import InboxIcon from "@material-ui/icons/MoveToInbox";
import DraftsIcon from "@material-ui/icons/Drafts";
import SendIcon from "@material-ui/icons/Send";
import ExpandLess from "@material-ui/icons/ExpandLess";
import ExpandMore from "@material-ui/icons/ExpandMore";
import StarBorder from "@material-ui/icons/StarBorder";

const useStyles = makeStyles(theme => ({
  root: {
    width: "100%",
    maxWidth: 360,
    backgroundColor: theme.palette.background.paper
  },
  nested: {
    paddingLeft: theme.spacing(4)
  }
}));

export default function NestedList() {
  const classes = useStyles();
  const [open, setOpen] = React.useState(true);

  const handleClick = () => {
    setOpen(!open);
  };

  return (
    <List
      component="nav"
      aria-labelledby="nested-list-subheader"
      subheader={
        <ListSubheader component="div" id="nested-list-subheader">
          Nested List Items
        </ListSubheader>
      }
      className={classes.root}
    >
      <ListItem button>
        <ListItemIcon>
          <SendIcon />
        </ListItemIcon>
        <ListItemText primary="Sent mail" />
      </ListItem>
      <ListItem button>
        <ListItemIcon>
          <DraftsIcon />
        </ListItemIcon>
        <ListItemText primary="Drafts" />
      </ListItem>
      <ListItem button onClick={handleClick}>
        <ListItemIcon>
          <InboxIcon />
        </ListItemIcon>
        <ListItemText primary="Inbox" />
        {open ? <ExpandLess /> : <ExpandMore />}
      </ListItem>
      <Collapse in={open} timeout="auto" unmountOnExit>
        <List component="div" disablePadding>
          <ListItem button className={classes.nested}>
            <ListItemIcon>
              <StarBorder />
            </ListItemIcon>
            <ListItemText primary="Starred" />
          </ListItem>
        </List>
      </Collapse>
    </List>
  );
}
从“React”导入React;
从“@material ui/core/styles”导入{makeStyles}”;
从“@material ui/core/ListSubheader”导入列表子标题;
从“@material ui/core/List”导入列表;
从“@material ui/core/ListItem”导入ListItem;
从“@material ui/core/ListItemIcon”导入ListItemIcon;
从“@material ui/core/ListItemText”导入ListItemText;
从“@material ui/core/Collapse”导入折叠;
从“@material ui/icons/MoveToInbox”导入收件箱;
从“@material ui/icons/Drafts”导入绘图图标;
从“@material ui/icons/Send”导入SendIcon;
从“@material ui/icons/ExpandLess”导入ExpandLess;
从“@material ui/icons/ExpandMore”导入ExpandMore;
从“@material ui/icons/StarBorder”导入StarBorder;
const useStyles=makeStyles(主题=>({
根目录:{
宽度:“100%”,
最大宽度:360,
背景色:theme.palete.background.paper
},
嵌套的:{
paddingLeft:主题。间距(4)
}
}));
导出默认函数NestedList(){
const classes=useStyles();
const[open,setOpen]=React.useState(true);
常量handleClick=()=>{
setOpen(!open);
};
返回(
{打开?:}
);
}
组菜单
患者菜单
组菜单
患者菜单

谢谢Ryan。发生的事情是,我有一个菜单,其中包括多个菜单。我想让它们看起来像嵌套的。根据你的建议,我把paddingLeft:20放在左边,谢谢你,瑞安。发生的事情是,我有一个菜单,其中包括多个菜单。我想让它们看起来像嵌套的。根据你的建议,我把padding放在左边:20