需要实现一个倒计时自动关闭的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就自动关闭了。
取消
MessageBox
了,改用Message
,非常方便。1、感觉前者更加趋向于
主动
提示,后者更加趋向于被动
提示——调用服务器api接口异步返回。2、前者不方便,每次弹出,就无法进行ui操作了,后者更加人性化。