我定义了一个方法fetchAssetDetail 在created里调用 从后台获取到数据 是一个对象 然后赋值给assetDetail
在模块里通过判断assetDetail的属性assetType来加载对应的元素 明明assetDetail有assetType这个属性 也有值 元素也加载出来了 但是控制台还是报错
webpack-internal:///5:572 [Vue warn]: Error in render: "TypeError: Cannot read property 'assetType' of null"
这可能是哪里出问题了呢
<p v-if="assetDetail.assetType == 1">房产</p>
<p v-else-if="assetDetail.assetType == 2">车辆</p>
<p v-else-if="assetDetail.assetType == 3">信用贷</p>
export default {
data() {
return {
assetDetail: null
}
},
created() {
this.fetchAssetDetail(storageUtil.get('bidId'))
},
methods: {
fetchAssetDetail(bidId) {
//let bidId = storageUtil.get('bidId')
let params = { bidId: bidId}
product.getAssetDetail(params).then((res) => {
storageUtil.set('pics', JSON.stringify(res.data.pics))
this.assetDetail = res.data
this.assetDetail.repayGuarantee = this.assetDetail.repayGuarantee.split('\r\n')
})
}
}
}
问题在这里啊,你初始赋值的
assetDetail
是null
,初始渲染读取assetDetail.assetType
当然是Cannot read property 'assetType' of null"
,解决办法是,给assetDetail初始赋值{},或者template模板里类似读取assetDetail
的父元素都加一个一个v-if="assetDetail != null"