问题描述
从父组件传递到子组件的值,resumeData,是一个对象,渲染成功,但是控制台总是报其中的一个字段是null,
两个报错
[Vue warn]: Error in render: "TypeError: Cannot read property 'fullName' of null"
- `vue.runtime.esm.js?2b0e:1737 TypeError: Cannot read property 'fullName' of null
at Proxy.render (eval at ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules\.cache\vue-loader","cacheIdentifier":"6319bb7e-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/center/lecture/components/edittab-comp/Resume.vue?vue&type=template&id=209dce5a&scoped=true& (0.js:311), <anonymous>:379:41)
at VueComponent.Vue._render (vue.runtime.esm.js?2b0e:4540)
at VueComponent.updateComponent (vue.runtime.esm.js?2b0e:2784)
at Watcher.get (vue.runtime.esm.js?2b0e:3138)
at new Watcher (vue.runtime.esm.js?2b0e:3127)
at mountComponent (vue.runtime.esm.js?2b0e:2791)
at VueComponent.Vue.$mount (vue.runtime.esm.js?2b0e:7995)
at init (vue.runtime.esm.js?2b0e:4133)
at createComponent (vue.runtime.esm.js?2b0e:5604)
at createElm (vue.runtime.esm.js?2b0e:5551)`
相关代码
- template代码
<el-form
ref="resumeForm"
:model="resumeData"
:rules="resumeRules"
label-width="120px">
<!-- 姓名 -->
<el-form-item label="姓名" prop="fullName">
<el-input v-model="resumeData.fullName" placeholder="请输入真实姓名">
</el-input>
</el-form-item>
<!-- 性别 -->
<el-form-item label="性别" prop="sex">
<el-radio-group v-model="resumeData.sex">
<el-radio :label="1">男</el-radio>
<el-radio :label="0">女</el-radio>
</el-radio-group>
</el-form-item>
……
</el-form>
- script代码
export default {
name: "Resume",
props: {
resumeData:{
type:Object,
default:{}
}
},
……
created() {
this.formInit();
},
methods: {
formInit() {
console.log(this.resumeData); // 打印结果:null
},
- resumeData数据结构
resumeEntity: {resumeId: "201811071060145813156925440", openId: "ohu7T06ir-fwh_advr1NEnzCvaps", fullName: "fsdf",…}
authenticationTime: null
company: "fsd"
companyAddress: null
companyLevel: null
companyScore: null
course1: "["关节","美学"]"
course2: "["托槽定位与粘接"]"
createTime: "2018-11-07 20:23:52"
department: "fsdf"
education: null
fullName: "fsdf"
idCard: null
isbu: 1
mail: "fsd"
openId: "ohu7T06ir-fwh_advr1NEnzCvaps"
phone: "fsd "
portrait: "fsdfas "
position: "fsdf"
positionScore: null
proveDesc: null
proveImg: "fds"
resumeId: "201811071060145813156925440"
resumeState: -1
resumeVersion: "v1"
score: null
serviceRanking: null
sex: 1
titleLevel: "fsdf"
titleScore: null
updateTime: "2018-11-07 20:23:52"
wechat: "fsdf"
问题:
表单中fullName字段渲染出来了,为什么说是null?
如果是因为里面的console,那么在父组件注册子组件的时候,采用异步组件的方式注册
如果是子组件里面的 resumeData.fullName报错,那么直接 v-if="resumeData.fullName"