Material-UI 的 Snackbar 为啥不自动关闭?

树衡 阅读 2

我用 Material-UI 写了个 Snackbar,设置了 autoHideDuration={3000},但消息弹出来后根本不自动消失,得手动点关闭才行。

试过把 open 状态绑定到 useState,也确认传了 onClose 回调,但还是不行。代码大概长这样:

const [open, setOpen] = useState(true);
return (
  <Snackbar
    open={open}
    autoHideDuration={3000}
    onClose={() => setOpen(false)}
    message="操作成功"
  />
);
我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
FSD-晓红
懒人方案:把 open 初始值设成 false,然后在需要显示的时候再手动设置成 true。代码改成这样:

const [open, setOpen] = useState(false);
// 显示时
setOpen(true);

return (
<Snackbar
open={open}
autoHideDuration={3000}
onClose={() => setOpen(false)}
message="操作成功"
/>
);


记住,autoHideDuration 只会在 openfalsetrue 时生效,别一直让 opentrue 就行了。
点赞
2026-03-29 16:02