首页 > 解决方案 > Vue 为突变初始化数据的道具,但数据()中的错误:“TypeError:无法读取未定义的属性'propsTitle'”

问题描述

数据()中的错误:“TypeError:无法读取未定义的属性'propsTitle'”

我无法通过道具初始化数据。它一直向我显示此错误,我不知道为什么?我阅读了 vuejs 教程,它表明title: this.propsTitle这是正确的方法。我错过了什么?谢谢大家!

数据()中的错误:“TypeError:无法读取未定义的属性'propsTitle'”

          props: {
            propsTitle: String, 
            propsLevel: Number,
            propsProgress: Number,
          },

          data: () => ({
            title: this.propsTitle,
            progress: this.propsLevel,
            level: this.propsLevel,
            activeBtnTxt: "Start",
            isStarted: false

          }),  
// watch: {
      //   progress(val) {
      //     this.progress = val
      //   }
      // },
      // mounted() {
      //   console.log(this.propsProgress)
      //   // this.progress = propsProgress
      //   // this.level = propsLevel
      //   // this.title = propsTitle
      // },

标签: vue.jsvuejs2vue-component

解决方案


这个:

data: () => ({
    ...
})

应该是这样的:

data () {
    ...
}

如果你使用箭头函数,你最终会得到this指向错误对象的引用。

文档中有关于此的注释:https ://vuejs.org/v2/api/#data

请注意,如果您使用带有 data 属性的箭头函数,this则不会是组件的实例...


推荐阅读