如何解决layui扩展插件tableSelect 偶发渲染失败的问题

layui扩展插件tableSelect Cannot read property ‘render’ of undefined问题

  • 1.介绍layuimini
  • 2.tableSelect问题描述
  • 3.解决tableSelect的Cannot read property 'render' of undefined问题
    • 3.1 layuimini与layui的继承关系
    • 3.2 如何让tableSelect稳定输出
    • 3.3修改效果

1.介绍layuimini

layuimini官网
layuimini是基于layui框架开发的一款开源前端展示框架,其风格继承了layui,并且增添了多款比较实用的扩展插件,今生有幸了解到了layuimini,也碰到了一个比较棘手的问题,就是在使用其tableSelect插件的时候,偶尔会发生渲染失败的问题,下面是码小闹对该问题的一个简要描述:

2.tableSelect问题描述

有图有真相,情况是这样的
在这里插入图片描述
浏览器控制台中提示‘render’ of undefined,点击出错文件后发现
如何解决layui扩展插件tableSelect 偶发渲染失败的问题_第1张图片
确实是tableSelect.render报的错,而我页面的展示形式,则是在一个父页面中弹出一个层,在该层中引用tableSelect,效果如下图所示:
如何解决layui扩展插件tableSelect 偶发渲染失败的问题_第2张图片
页面中引用的js,css文件等,如下图所示:
css:
在这里插入图片描述
js:
在这里插入图片描述
好,到此问题出错的场景描述完毕,如果和你的错误现象不同,那你可以关闭浏览器直接去嗨皮了,如果你和文中的错误一样,那么请继续看下去

3.解决tableSelect的Cannot read property ‘render’ of undefined问题

首先要明确一点,我引用的是layuimini的框架,其中包含了tableSelect插件,所以有的小伙伴说要修改layui.all.js源码的办法我就不说了,那么下面就一步一步来吧

3.1 layuimini与layui的继承关系

如何解决layui扩展插件tableSelect 偶发渲染失败的问题_第3张图片
上图可以看到tableSelect是layuimini提供的一个插件,它是通过lay-config.js这个文件来扩展了layui,翻看源码可以了解到:
如何解决layui扩展插件tableSelect 偶发渲染失败的问题_第4张图片
所以在引入js文件的时候,我们不能只引入上文提到的那几个文件,还不能忘了要把这个lay-config.js一并引入。
在这里插入图片描述

3.2 如何让tableSelect稳定输出

进行上述修改后,如果你运行程序的话,可能还会出现该错误偶发的现象,所以,我们的修改操作还没完全完成,要想稳定输出,还需要做一个修改,如下所示:

layui.use(['form','table','tableSelect'], function () {
     
        var form = layui.form,
            layer = layui.layer,
            table = layui.table,
            tableSelect = layui.tableSelect,
            $ = layui.$;
		tableSelect.render({
     
            ****************************
        });
     }

就是在layui.use[ ]中 激活一下tableSelect,如此修改到此结束,来看下效果

3.3修改效果

如何解决layui扩展插件tableSelect 偶发渲染失败的问题_第5张图片
浏览器控制台:
如何解决layui扩展插件tableSelect 偶发渲染失败的问题_第6张图片
连续多次无报错,有兴趣的小伙伴可以多试几次验证(我试了20多次,怕贴出来你们觉得无聊,哈)
打完收工~!如果解决你的问题,还犹豫啥,快点赞吧!

你可能感兴趣的:(前端,javascript)