在实习中遇到了message组件重复弹出的问题。当一个页面请求多个接口时,message放在响应拦截器里,如果多个接口返回异常或者错误时,message组件会多次弹出。
这里对element-ui 的message组件做一层封装,防止此类问题出现
src/utils/resetMessage.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
   |  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
 
  | 
 
调用:
1 2 3 4 5 6 7 8
   | import { message } from "@/utils/resetMessage"
   message({         message: error.response.data.message,         type: "error",         duration: 5 * 1000,         showClose: true });
 
  |