element-ui message解决出现多次

来源:https://blog.csdn.net/weixin_41997724/article/details/107183385

解决方案:重写Message。弹出前判断是否有相同弹出框,若有则关闭它再弹出新的
resetMessage.js:

import {Message} from 'element-ui';
let messageInstance = null;
const resetMessage = (options) => {
    if(messageInstance) {
        messageInstance.close()
    }
    messageInstance = Message(options)
};
['error','success','info','warning'].forEach(type => {
    resetMessage[type] = options => {
        if(typeof options === 'string') {
            options = {
                message:options
            }
        }
        options.type = type
        return resetMessage(options)
    }
})
export const message = resetMessage

main.js调用:

import {message} from './api/resetMessage';
Vue.use(ElementUI);
Vue.prototype.$message = message;

组件使用:

this.$message.error('提示内容');
this.$message({type:success,message:'提示内容'}); 

在js文件中调用:

import {message} from './resetMessage';
message.error('提示内容'); 
message({type: 'error',message: '提示内容'});

如果使用message.error('提示内容'); 报错,使用这种方式一般就可以了message({type: 'error',message: '提示内容'});
具体看:https://blog.csdn.net/qq_30671099/article/details/107109076

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容