Snackbar 消息条
消息条组件提供了关于应用流程的简短信息。 该组件也被称为 toast。
消息条将应用程序已执行或即将执行的进程通知用户。 它们会从屏幕底部短暂地出现。 它们不应中断用户体验,也不要求任何用户的操作来关闭。
消息条包含了一行直接与所执行操作相关的文本。 它们可能包含一些文本操作,但并不会展示图标。 您也可以用他们展示通知。
频率
我们规定一次只能显示一个消息条。
简单的消息条
一个简单的消息条旨在重现谷歌 Keep 消息条的行为。
自定义的消息条
你可以参考以下一些例子来自定义组件。 您可以在重写文档页中了解有关此内容的更多信息。
<Button variant="outlined" onClick={handleClick}>
  Open success snackbar
</Button>
<Snackbar open={open} autoHideDuration={6000} onClose={handleClose}>
  <Alert onClose={handleClose} severity="success">
    This is a success message!
  </Alert>
</Snackbar>
<Alert severity="error">This is an error message!</Alert>
<Alert severity="warning">This is a warning message!</Alert>
<Alert severity="info">This is an information message!</Alert>
<Alert severity="success">This is a success message!</Alert>定位的消息条
在宽大的布局中,如果消息条始终放在屏幕底部的同一位置,那么可以左对齐或中间对齐,但在某些情况下,消息条的位置可能需要更加灵活。 通过指定 anchorOrigin 的属性,您可以控制消息条的位置。
{buttons}
<Snackbar
  anchorOrigin={{ vertical, horizontal }}
  open={open}
  onClose={handleClose}
  message="I love snacks"
  key={vertical + horizontal}
/><SnackbarContent message="I love snacks." action={action} />
<SnackbarContent
  message={
    'I love candy. I love cookies. I love cupcakes. \
    I love cheesecake. I love chocolate.'
  }
/>
<SnackbarContent message="I love candy. I love cookies. I love cupcakes." action={action} />
<SnackbarContent
  message={
    'I love candy. I love cookies. I love cupcakes. \
    I love cheesecake. I love chocolate.'
  }
  action={action}
/>更改过渡动画
Grow 是默认的过渡动画,但你可以使用不同的过渡动画。
<Button onClick={handleClick(GrowTransition)}>Grow Transition</Button>
<Button onClick={handleClick(Fade)}>Fade Transition</Button>
<Button onClick={handleClick(SlideTransition)}>Slide Transition</Button>
<Snackbar
  open={state.open}
  onClose={handleClose}
  TransitionComponent={state.Transition}
  message="I love snacks"
  key={state.Transition.name}
/>控制滑动的方向
你可以修改 Slide 过渡的方向 。
<Button onClick={handleClick(TransitionLeft)}>Right</Button>
<Button onClick={handleClick(TransitionUp)}>Up</Button>
<Button onClick={handleClick(TransitionRight)}>Left</Button>
<Button onClick={handleClick(TransitionDown)}>Down</Button>
<Snackbar
  open={open}
  onClose={handleClose}
  TransitionComponent={transition}
  message="I love snacks"
  key={transition ? transition.name : ''}
/>补充项目
对于更高级的用例,您可以利用:
notistack
 
以下例子演示了如何使用 notistack。 notistack 有一个 imperative API 可以轻松地显示一串消息条,且无需处理其打开/关闭状态。 您也可以把它们 堆叠 在一起(尽管 Material Design 规范不鼓励这样做)。
无障碍设计
(WAI-ARIA: https://www.w3.org/TR/wai-aria-1.1/#alert)
- 默认情况下,消息条不会自动隐藏。 但是,如果您决定使用 autoHideDuration属性,我们建议给用户提供 足够的时间 来响应。