element-ui的MessageBox怎么倒计时自动关闭?

需要实现一个倒计时自动关闭的MessageBox弹框,但是翻了一遍api没有找到方法,网上查到一种不太理想的解决方案,如下:

MessageBox.alert('错误信息', '错误提示', {
  confirmButtonText: '确认',
  type: 'error',//success,error,info和warning
  callback: action => {
    window.location.href = "/login"
   }
})

setTimeout(() => {
  MessageBox.close();
}, 3000);

现在可以通过MessageBox.close();关闭弹框,但是,有几个问题:
1、这种关闭方式关闭弹框,但是不会触发callback,也就是说callback的逻辑代码需要些到两个地方——callback、setTimerout。
2、通过MessageBox.close();关闭弹框,但是定时器没有清楚,假设用户在1s触发弹框,并且立马关闭,立即再次触发弹框,这个时候,弹框可能不到1s就自动关闭了。

阅读 17.5k
2 个回答

取消MessageBox了,改用Message,非常方便。

1、感觉前者更加趋向于主动提示,后者更加趋向于被动提示——调用服务器api接口异步返回。
2、前者不方便,每次弹出,就无法进行ui操作了,后者更加人性化。

这其实跟ele-ui没多大关系,这是js的基础知识,clearTimeout方法了解一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题