警告提示框怎么在用户操作后自动消失?

露露 ☘︎ 阅读 126

我用 Ant Design 的 message.warning 做了个警告提示,但用户点完按钮后提示一直挂着,得手动关。有没有办法让它在 2 秒后自动消失?

试过加 duration 参数,但好像没生效,代码是这样的:

message.warning('操作有风险,请确认!', { duration: 2 });
我来解答 赞 9 收藏
二维码
手机扫码查看
2 条解答
艳雯 Dev
哈哈,你这个duration的单位是秒数,但实际需要的是毫秒数。Ant Design的文档里确实写了这个参数,但单位容易搞错。

正确的写法应该是这样:
message.warning('操作有风险,请确认!', { duration: 2000 });


按照规范,duration的单位是毫秒,所以2000才是2秒。我之前也踩过这个坑,还去翻了源码才确认。

另外如果你想全局设置默认时长,可以在应用初始化时配置:
message.config({
duration: 2000,
});


这问题简单但容易中招,建议下次直接查duration参数的文档说明部分。
点赞 3
2026-03-07 10:08
宇文树人
你这写法有问题,duration 参数传的方式不对。

Ant Design 的 message API 第二个参数直接接数字就行,你传了个对象进去,它解析不了,自然就走了默认逻辑。

直接这样写:

message.warning('操作有风险,请确认!', 2);


或者如果你习惯用配置对象的方式,得这么写:

message.warning({
content: '操作有风险,请确认!',
duration: 2
});


前端这块看文档得仔细点,Ant Design 的 message 组件第一个参数是内容,第二个参数直接就是 duration 数字,第三个是关闭回调。你把对象塞第二个参数位置,它压根不认识。

改成上面任意一种写法,2 秒后自动消失没问题。
点赞 1
2026-02-28 22:06