reactjs - autoHideDuration 在使用钩子的 Snackbar 中不起作用
问题描述
我在我的 reactjs 项目中的许多地方都使用了 @material-ui 小吃吧;然而,当涉及到 onClose 和 onClick 处理程序时,这会导致代码重复。所以我决定将参数移动到一个钩子上。随后,当我创建钩子并将代码移过来时,autoHideDuration 停止工作。我很好奇为什么?
我已经尝试将 Snackbar 组件移动到钩子中并使用参数渲染完整的小吃栏,但这也不起作用。
在这一点上,我刚刚制作了一个自定义组件,它包含了快餐栏组件和处理程序,并在我的整个项目中导入了自定义组件。尽管如此,我仍然想找到一个解决方案,说明为什么 autoHideDuration 在第一个解决方案中停止工作
我在下面包含了一个带有错误行为的代码沙箱:
https://codesandbox.io/embed/dreamy-chaplygin-z2jr5nqry3?fontsize=14
预期结果:在 useSnackbar.js 文件中的 autoHideDuration 中设置的定义超时期限后,小吃店应自动关闭
解决方案
你的事件有问题handleClose
。您正在使用({ event, reason })
一个参数的对象破坏,但它必须是两个单独的参数(event, reason)
。
这就是您的handleClose
外观:
const handleClose = (event, reason) => {
if (reason === "clickaway") {
return;
}
setOpen(false);
};
推荐阅读
- typescript - 如何使用可选参数重载 TypeScript 中的函数?
- selenium-webdriver - 我正在使用 chrome headless 为 nimo.tv 开发视图机器人,但是当我达到 350 次观看时,我的观看次数重置为 20
- javascript - js RegExp 上的奇怪行为:最后没有捕获一个字符
- python - Pandas - 删除第一列并添加索引
- linux - kubectl exec 的 Keepalive
- kubernetes - minikube 隧道命令在添加路由时显示错误
- javascript - 如何将 HTML Canvas 内容保存到 Google 存储
- continuous-integration - Testflight:Beta App Review 信息未保留在 Appstore connect 上(通过 Appcenter 分发)
- html - 大众单位、尺寸属性和媒体查询不起作用
- java - 为什么我的 gif 显示时滞后?(JFrame)