element notify,element span is not closed

  element notify,element span is not closed

  本文主要介绍这一问题的解决方案。ElementUI的$notify.close()调用不起作用。通过实例代码详细介绍,具有一定的参考价值。感兴趣的朋友可以参考一下。

  

目录

  需求描述问题描述问题分析问题解决方案问题扩展

  

需求描述

  首先,项目要求用户选择一个问题。选择完成后,使用ElementUI的通知组件提示用户正在检查文件格式(需要先提交到后端,由后端检查,然后将结果返回到前端)。如果格式检查正确,关闭通知,会弹出一个MessageBox(也是ElementUI的一个组件),通知用户上传的文件无法撤销。

  

问题描述

  检查文件格式是否正确后,需要手动调用相关函数来移除通知。根据官方文件,使用这个。$notify.close()不起作用,控制台没有报告错误。

  

问题分析

  在控制台打印出这个之后。$notify,可以进入通知的相关功能如下图所示:

  在代码中,我们可以看到哪些函数封装在Notification内部,包括close()函数,它需要两个参数,id和userOnClose。看代码,不难看出id是通知的id。比如有多个通知时,可以选择性关闭;UserOnClose可以传入一个函数,有点像回调函数。因此,如果要使用close()函数,必须知道要关闭的通知的id。我们会在文末简单讨论一下。

  往下看代码,可以看到有一个closeAll()函数,不需要传入任何参数,通过遍历关闭所有通知,适合这个项目的场景(只需要关闭一个通知)。

  

问题解决

  对于这个项目,就叫这个吧。$notify.closeAll()直接调用。

  

问题拓展

  主要针对多个通知,想关闭其中一个怎么办?我试着去理解notify.js,发现id基本上就是notification_seed的模式,也就是notification_ string加一串数字。看一下源代码,发现初始种子是1,也就是第一个实例化通知的id应该是notification_1。如图所示:

  现在问题来了。我调用了close()函数,传入了两个看似正确的参数,发现并不起作用:

  为了防止我对id的误解,我在浏览器中调试了一下,发现instance (instance(Notification)中的id确实是我分析的那个:

  于是我结合开发者工具中的调试工具,一步步检查了notify.js中close()函数代码的执行步骤。我发现代码没有问题,逻辑也没有问题。最后,instances还通过splice函数消除了对应id的通知,但是页面上的通知只是站稳了,并没有消失(主函数在矩形框里)。

  以上是我尝试的一些分析。当然,由于自己能力有限,最后也没有解决。有兴趣的老板可以研究一下。

  这就是这篇文章的解决方案。ElementUI的$notify.close()调用不起作用。了解更多相关信息。$ notify.close () call=content,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: