vue项目中,动态渲染数据时,截取(substring())字符串中的一段字符,出现错误(“TypeError: Cannot read property ‘substring’ of undefined”)
目的:截取 "2019-10-15T07:20:47.000Z"中的 2019-10-15,在文章中渲染
方法:利用字符串 substring()函数进行截取
- 函数:substring()
- 定义:substring(start,end)表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符。
- 功能:字符串截取,比如想从"getUserDetails"中得到"getUser"就要用到substring(0,7)
如下:
<div class="time">{{current.create_date.substring(0,10)}}</div>
*控制台打印输出:*
console.log(this.current.create_date); // 2019-10-15T07:20:47.000Z
console.log(this.current.create_date.substring(0,10)); //2019-10-15
虽说截取成功,但是出现了错误:"TypeError: Cannot read property ‘substring’ of undefined"
- 报错内容:“Cannot read property ‘substring’ of undefined”
- 报错原因:你没有判断数据来源是否为空。对字符串做substring时,没有判断其是否为空。
- 解决方式:在数据前面的标签里面 进行判断 v-if=“字符串内容”
<div class="time">{{current.create_date.substring(0,10)}}</div>
报错:Cannot read property 'substring' of undefined"
修改:
<div class="time" v-if="current.create_date">{{current.create_date.substring(0,10)}}</div>