Vuejs2 在渲染中获取错误:“quot;TypeError:无法读取属性';标题';“未定义”的定义;呈现CourseDescriptionPageComponent时

Vuejs2 在渲染中获取错误:“quot;TypeError:无法读取属性';标题';“未定义”的定义;呈现CourseDescriptionPageComponent时,vuejs2,vuex,Vuejs2,Vuex,下面是CourseDescriptionPage.vue的外观 从导入CourseCover./CoursedDescription/CourseCover.vue' 从“./CourseDescription/WhyJoin.vue”导入WhyJoin 从“./CoursedDescription/CourseStructure.vue”导入CourseStructure 导出默认值{ 道具:['id'], 数据(){ 返回{ hasDetails:错误 } }, 创建(){ 这个.stor

下面是CourseDescriptionPage.vue的外观

从导入CourseCover./CoursedDescription/CourseCover.vue'
从“./CourseDescription/WhyJoin.vue”导入WhyJoin
从“./CoursedDescription/CourseStructure.vue”导入CourseStructure
导出默认值{
道具:['id'],
数据(){
返回{
hasDetails:错误
}
},
创建(){
这个.store.dispatch('loadCoursedDetails',this.id)。然后(()=>{
this.hasDetails=true
})
},
计算:{
课程(){
返回此.store.state.CoursedDetails[this.id]
}
},
组成部分:{
CourseCover,
为什么加入,
课程结构
},
名称:“CourseDescriptionPage”
}

课程在组件初始化时未定义,因此您应该返回一个空对象:

computed: {
  course () {
    return this.$store.state.courseDetails[this.id] || {}
  }
},

课程在组件初始化时未定义,因此您应该返回一个空对象:

computed: {
  course () {
    return this.$store.state.courseDetails[this.id] || {}
  }
},

你已经发布了很多代码。你能把它简化成一个最小的例子来帮助我们发现错误吗?@NicoHaase谢谢你的回复。这是我的第一个问题。所以,请原谅,如果我提供了很多代码,把您弄糊涂了。问题在第一个片段中。它在抱怨“title”属性,当然这是我在computed属性部分读到的。你已经发布了很多代码。你能把它简化成一个最小的例子来帮助我们发现错误吗?@NicoHaase谢谢你的回复。这是我的第一个问题。所以,请原谅,如果我提供了很多代码,把您弄糊涂了。问题在第一个片段中。它抱怨“title”属性,当然是我从computed属性部分读到的。我仍然得到了错误,但现在至少我的组件正在渲染。这可能是因为在我的道具中,我已经将“title”的类型定义为String,它正在变得未定义,我认为删除它将解决这个问题。有没有更好的办法,因为我不想删除我道具上的类型检查。你能再解释一点吗?虽然在删除了对道具的类型检查后错误消失了,但是没有获取数据。请帮助计算:{course(){返回这个。$store.state.courseDetails[this.id]|{title:'',duration:'}}},我仍然得到了错误,但现在至少我的组件正在呈现。这可能是因为在我的道具中,我已经将“title”的类型定义为String,它正在变得未定义,我认为删除它将解决这个问题。有没有更好的办法,因为我不想删除我道具上的类型检查。你能再解释一下没有获取数据的原因吗,尽管在删除了对道具的类型检查之后错误就消失了。请帮助计算:{course(){返回这个。$store.state.courseDetails[this.id]|{title:'',duration:'}},