资讯专栏INFORMATION COLUMN

【Copy攻城狮日志】"Error: if there's nested dat

褰辩话 / 2968人阅读

摘要:工作日,每天起床机械地去上班,周末,每天优哉游哉,好像一个木偶,被生活蹂躏的木偶,意识以外的力量在操纵着的木偶。支持子节点数据异步加载。当然,官方将提供更改键值的。本许可协议授权之外的使用权限可以从处获得。

Created by huqi at 2019-5-18 10:32:30  
Updated by huqi at 2019-5-18 12:32:23

↑开局一张图,故事全靠编↑

从最新学习d2开源项目说起

有时候,非常非常地迷茫,找不到方向,找不到人生的方向,找不到未来的方向,找不到学习的方向。现在的状态,犹如一叶扁舟,漂浮着茫茫的大海之上。工作日,每天起床机械地去上班,周末,每天优哉游哉,好像一个木偶,被生活蹂躏的木偶,意识以外的力量在操纵着的木偶。在技术上的积累也渐渐走下坡路了,基础不牢固,也采取过一些办法,不知是疗程不够还是病入膏肓已无可救药,总之,明明知道有病,却怎么也治不好。最近,又加入了梁sir的暴走前端计划,重新折腾起来,于是开始学习,目前折腾了一下Vue.js,在看d2改版renren的项目,跟着@FairyEver大佬踩了不少坑,其中就有element-ui的这个坑--"Error: if there"s nested data, rowKey is required."

刨根问到底,探究报错的原因

首先,不用怀疑,这是一个bug,理论上是element-ui中el-table的一个bug,但又不能说是一个bug,因为人家框架原型设计的就是这样,只是可能我们使用不当。先粗略分析一下报错的原因:

1. 没有加row-key属性

如文档中所提及的,结合报错的字面意思 ☞文档:table:

支持树类型的数据。此时,必须要指定 row-key。支持子节点数据异步加载。设置 Table 的 lazy 属性为 true 与 加载函数 load ,指定 row 中的 hasChildren 来确定哪些行是包含子节点。
`

那就copy一下官方案例,el-table加上row-key="id"

 
 

不过,对row-key的支持应该是2019年3月左右提供的。☞Table: support tree structure data

修改element-ui版本

很气人啊,我只能修改package.json文件中依赖element-ui的版本。
一般来说,默认安装的依赖,如果package.json中带 ^ 符号的话,会默认安装最近的版本,去掉 ^ 符号,重新安装一下element-ui依赖就可以解决了。至于改用那个版本,按照实际来吧,如果去掉 ^ 符号重新安装能成功就可以了,不行就换个版本吧。

修改children字段

这个就不是很好的处理方式了,毕竟后台返回来的数据,你要他改字段,呵呵呵,当然,你话语权足够的话,又不想改前台代码,就让他替换一下childre字段吧。当然,官方将提供更改children键值的api。
别问我children字段哪来的,我的是后台传过来的;

也别问我为什么会冲突,
我猜是和之里冲突☞源码:

  getChildren(forceInit = false) { // this is data
    if (this.level === 0) return this.data;
    const data = this.data;
    if (!data) return null;

    const props = this.store.props;
    let children = "children";
    if (props) {
      children = props.children || "children";
    }

    if (data[children] === undefined) {
      data[children] = null;
    }

    if (forceInit && !data[children]) {
      data[children] = [];
    }

    return data[children];
  }

至于怎么前台怎么修改children字段,我也不会,大概是深浅拷贝之类的操作吧

我最终通过修改element-ui版本和加row-key属性解决了,前端路漫漫坑多多,能趟一个算一个!

本小篇写于 天河区图书馆华港分馆 ,第一次来图书馆看……小姐姐。


本作品 由 Loner 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
基于https://github.om/hu-qi/Loner上的作品创作。
本许可协议授权之外的使用权限可以从 https://creativecommons.org/l... 处获得。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109632.html

相关文章

  • Copy城狮日志】踩坑小程序之can't read property 'of

    摘要:根据当时的情境,是在微信开发者工具中删掉该小程序然后重新载入就解决了,大家给出的结论是微信小程序开发者工具的。 Created 2019-4-2 22:17:34 by huqiUpdated 2019-4-2 23:17:34 by huqishowImg(https://segmentfault.com/img/bVbqOLH?w=1526&h=818); ↑开局一张图,故事全靠编...

    hsluoyz 评论0 收藏0
  • Copy城狮日志】Node.js之http下载图片失败

    摘要:当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的数据流中头信息中的状态码的一种,表示本网页永久性转移到另一个地址。通过在源代码中添加日志输出,我们也能清楚地看到的状态码。 Created 2019-4-5 22:24:33 by huqi Updated 2019-4-5 23:23:56 by huqi showImg(https://segmentfault.com/...

    darkbaby123 评论0 收藏0
  • Copy城狮日志】踩坑小程序之canvas的显示层级问题

    摘要:依旧是很简单的需求,但是对于资深的攻城狮来说,除了布局,其他的就只能去了。特别是真机跑的时候,问题特别多。还是坑在基础不牢固,文档看得不深入,对小程序原生组件应该注意的事项把握不准,才会掉入这个非常基础的坑。 Created 2019-4-3 18:29:53 by huqiUpdated 2019-4-3 19:12:22 by huqi showImg(https://segmen...

    Coly 评论0 收藏0
  • VUE Error:if there's nested data,rowKey is re

    摘要:最近用的表格时,请求的嵌套数据出了这个让我难受了好久最后终知版本带的默认使用最近版本。所以产生错误提示解决办法去掉符号保持版本样式不变,在表单中加入属性 最近用element-ui的表格时,请求的嵌套数据 出了这个bug showImg(https://segmentfault.com/img/bVbsumA?w=722&h=72); 让我难受了好久..最后终知 element-ui...

    xeblog 评论0 收藏0
  • Copy城狮日志】Docker部署D2Admin 人人企业版

    摘要:介于目前项目的前端开发基于人人企业版有了快狗团队的手摸手,很快就能用部署这样一个后台管理平台。构建镜像,部署静态资源这里借助获取镜像,通镜像作为基础来构建人人企业版镜像。本许可协议授权之外的使用权限可以从处获得。 Created by huqi at 2019-5-24 21:01:30 Updated by huqi at 2019-5-26 00:00:42 前言 最近后端的小...

    JessYanCoding 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<