在调用了后台数据接口之后忘记在js代码里面对后台返回的日期格式进行处理,然后脑子短路就直接在<template>模板里面的对数据进行格式转换,split和replace可以把数据转化为我想要的格式,但有一个疑问,为什么数据都转化成功了,控制台还是报错了,报的错还是split和replace函数未定义的错误,我的理解是既然未定义,为什么split和replace还是起作用了?
这是在template模板里面做格式转换的代码,格式转化了,但报错了
<div class="useDate">*有效期至{{conponData.endTime.split(' ')[0].replace(/(\d{4})-(\d{2})-(\d{2})/g,'$1年$2月$3日')}}</div>
这是在接口方法里面做格式转化,一般也是这样做处理,所以就没报错
export async function getDetail(pkId) {
const recData = await jsonAxios(CONPONDETAIL, {
pkId: pkId
})
if (recData.status == 10000) {
_this.conponData = recData.data;
_this.description = _this.conponData.description.split('\n');
_this.conponData.endTime = _this.conponData.endTime.split(' ')[0].replace(/(\d{4})-(\d{2})-(\d{2})/g,'$1年$2月$3日');
}
console.log(recData);
}
页面初始化的时候,conponData为空对象,endTime为undefined,所以找不到split函数,并抛出错误