vue element ui使用table自定义列函数格式化时间,出现的错误如何解决?

我在使用element ui一个table组建中,使用自定义列,字段是成功绑定的,代码如下

 <el-table-column label="生日" align="center" sortable width="100">
     <template slot-scope="scope">
         {{ dateFormat(scope.row.profile.birthday,"yyyy-MM-dd" ) }}
     </template>
 </el-table-column>

但是出现如下的错误

clipboard.png

这是后端的数据

clipboard.png
函数是没有问题的,因为其他的时间可以正常显示并成功转换,只有在这个profile对象的时间出现这样的错误,试问一下是什么情况下造成的?应该如何解决,感谢您的解答

阅读 5k
4 个回答

楼主,你好,可以试试如下代码:

 <el-table-column label="生日" align="center" sortable width="100">
     <template slot-scope="scope">
         // 这里加入了防御性编程,也就是先判断 profile 对象是否存在
         {{ dateFormat(scope.row.profile && scope.row.profile.birthday, "yyyy-MM-dd" ) }}
     </template>
 </el-table-column>

如有帮助,麻烦点击下采纳,谢谢~

有没有可能一开始item里没有profile是后赋值的?

row.profile.birthday,应该是这里出的问题。
在create的时候,你的data应该是:data:{profile:'',},在data中找不到birthday这个属性。
解决方法:预设data为:{profile:{birthday:''},}

新手上路,请多包涵

换个思路,用过滤器试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题