Created by huqi at 2019-5-18 10:32:30
Updated by huqi at 2019-5-18 12:32:23
↑开局一张图,故事全靠编↑前端
有时候,很是很是地迷茫,找不到方向,找不到人生的方向,找不到将来的方向,找不到学习的方向。如今的状态,犹如一叶扁舟,漂浮着茫茫的大海之上。工做日,天天起床机械地去上班,周末,天天优哉游哉,好像一个木偶,被生活蹂躏的木偶,意识之外的力量在操纵着的木偶。在技术上的积累也渐渐走下坡路了,基础不牢固,也采起过一些办法,不知是疗程不够仍是病入膏肓已无可救药,总之,明明知道有病,却怎么也治很差。最近,又加入了梁sir的暴走前端计划,从新折腾起来,因而开始学习,目前折腾了一下Vue.js,在看d2改版renren的项目,跟着@FairyEver大佬踩了很多坑,其中就有element-ui的这个坑--"Error: if there's nested data, rowKey is required."node
首先,不用怀疑,这是一个bug,理论上是element-ui中el-table的一个bug,但又不能说是一个bug,由于人家框架原型设计的就是这样,只是可能咱们使用不当。先粗略分析一下报错的缘由:git
如文档中所说起的,结合报错的字面意思 ☞文档:table:github
支持树类型的数据。此时,必需要指定 row-key。支持子节点数据异步加载。设置 Table 的 lazy 属性为 true 与 加载函数 load ,指定 row 中的 hasChildren 来肯定哪些行是包含子节点。
`
那就copy一下官方案例,el-table加上row-key="id"element-ui
<el-table row-key="id" > </ el-table>
不过,对row-key的支持应该是2019年3月左右提供的。☞Table: support tree structure data json
很气人啊,我只能修改package.json文件中依赖element-ui的版本。
通常来讲,默认安装的依赖,若是package.json中带 ^ 符号的话,会默认安装最近的版本,去掉 ^ 符号,从新安装一下element-ui依赖就能够解决了。至于改用那个版本,按照实际来吧,若是去掉 ^ 符号从新安装能成功就能够了,不行就换个版本吧。api
这个就不是很好的处理方式了,毕竟后台返回来的数据,你要他改字段,呵呵呵,固然,你话语权足够的话,又不想改前台代码,就让他替换一下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... 处得到。