如何不使用动画直接关闭react-toastify的所有toast提示?
解决方案
方案1(推荐,适配 react-toastify v7 及以上版本)
react-toastify 内置了无动画直接移除 toast 的API toast.remove(),不传参数调用时会直接销毁当前所有已渲染的 toast DOM 节点,完全跳过关闭动画,立即生效。
使用示例:
import { toast } from 'react-toastify'; // 无需传参,直接调用即可立即关闭所有toast,无任何过渡动画 toast.remove();
如果需要单独关闭某一个指定 toast 且不带动画,给该方法传入对应 toast 的id即可,传参逻辑和toast.dismiss()完全一致。
方案2(兼容旧版本,无toast.removeAPI的场景)
可以临时覆盖全局过渡动画配置后调用toast.dismiss(),操作完成后还原原有配置即可:
import { toast } from 'react-toastify'; // 暂存原有过渡动画配置 const originalTransition = toast.getConfig().transition; // 临时禁用所有过渡动画 toast.configure({ transition: () => <></> }); // 关闭所有toast toast.dismiss(); // 恢复原始配置,不影响后续正常的toast动画效果 toast.configure({ transition: originalTransition });
内容的提问来源于stack exchange,提问作者Kirill Poddubnyi
相关产品推荐
相关产品推荐

