今天會接續昨天未講解的部分往下...
其實他就是分隔線而已,跟 hr tag 是差不多的,文件上的範例其實大多我都用 border 來處理,當然也可以用上面的方式處理啦:
<List component="nav" className={classes.root} aria-label="mailbox folders">
  <ListItem button>
    <ListItemText primary="Inbox" />
  </ListItem>
  <Divider />
  <ListItem button divider>
    <ListItemText primary="Drafts" />
  </ListItem>
  <ListItem button>
    <ListItemText primary="Trash" />
  </ListItem>
  <Divider light />
  <ListItem button>
    <ListItemText primary="Spam" />
  </ListItem>
</List>
在列表中,應該確保將 Divider 呈現為 li tag 以匹配 HTML5 規範。
<List className={classes.root}>
  <ListItem>
    <ListItemAvatar>
      <Avatar>
        <ImageIcon />
      </Avatar>
    </ListItemAvatar>
    <ListItemText primary="Photos" secondary="Jan 9, 2014" />
  </ListItem>
  <Divider variant="inset" component="li" />
  <ListItem>
    <ListItemAvatar>
      <Avatar>
        <WorkIcon />
      </Avatar>
    </ListItemAvatar>
    <ListItemText primary="Work" secondary="Jan 7, 2014" />
  </ListItem>
  <Divider variant="inset" component="li" />
  <ListItem>
    <ListItemAvatar>
      <Avatar>
        <BeachAccessIcon />
      </Avatar>
    </ListItemAvatar>
    <ListItemText primary="Vacation" secondary="July 20, 2014" />
  </ListItem>
</List>
也可以透過 orientation="vertical" 的方式設置垂直的分隔線。
<Grid container alignItems="center">
  <FormatAlignLeftIcon />
  <FormatAlignCenterIcon />
  <FormatAlignRightIcon />
  <Divider orientation="vertical" flexItem />
  <FormatBoldIcon />
  <FormatItalicIcon />
  <FormatUnderlinedIcon />
</Grid>
這邊我是沒有再用他們家的 icons,所以有需要的話請到他們官方文件裡看詳細的規範。
或是到他的Icons 庫裡玩玩效果。
列表是一組連續的文本或圖像,它們由包含主要和補充操作的項目組成,這些操作由圖標和文本表示。這個組件就蠻好用的了,在上面 Divider 組件內有示範過了大概的邏輯:
<List component="nav" aria-label="main mailbox folders">
  <ListItem button>
    <ListItemIcon>
      <InboxIcon />
    </ListItemIcon>
    <ListItemText primary="Inbox" />
  </ListItem>
  <ListItem button>
    <ListItemIcon>
      <DraftsIcon />
    </ListItemIcon>
    <ListItemText primary="Drafts" />
  </ListItem>
</List>
如果要用Link的變體的話,通常還是會以react router為主,在 property 中下 component={Link} to="導向的url"。
這裡會搭配 Collapse 組件使用,他和之前介紹過的 Accordion 用法一樣。
// in export function
const [open, setOpen] = React.useState(true);
const handleClick = () => {
  setOpen(!open);
};
// in return
<List>
  <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>
其他應用的範例我就不再一一列舉了,各位可以到他的官方文件查看。
那麼今天的內容就到這裡了,明天會接續講解 Table 的組件。