tableIns使用reload后返回data为undefined

提问 已结 2 140
Queenie
Queenie 2020-2-13
悬赏:20飞吻
版本:layui 2.4.5 浏览器:chrome
table渲染render返回的对象自带一个data字段,但是使用reload方法后,data字段变成undefined,新版的没测试,求解答讨论交流~
这是第一次获取的tableIns对象,有data字段

使用reload方法后再对tableIns对象取值,data字段就不见了

可能新版本已经解决这个问题,看到更新日志有,因为我模板加载异常用最新版本,所以先提问,之后更新到最新我再试一下~新版本的小伙伴帮忙测试下告诉我~感恩~!
回帖
  • 这个问题一直存在的,跟版本没有关系。主要原因是目前的reload实际是一次重载,实质跟重新render一样,区别就是会继承之前实例的配置,那么render返回的这个对象,table.reload的时候,table.js中对data模式进行处理,因为对配置的继承采用的是深拷贝,如果判断是data模式,会将原先的移除,然后再extend作为新的配置去渲染表格,正如一开始说的,实际上他是重新生成了一个实例了,跟你一开始render的不是同一个,所以你去访问render返回的那个实例里面的config就跟你重新reload之后的实际已经没有什么关系了,即使他们很多一样的,但绝不是同一个东西;
    解决方案:reload会跟render一样,返回对应的新的“表格实例”,所以你在render的时候要注意重新赋值给tableIns,这样子才能保证你这个tableIns是最新的。
    tableIndex = layTable.reload(......);
    0 回复
  • Queenie
    2020-2-14
    @岁月小偷 好的,明白了~感谢解答!
    0 回复