Vue中data没有写return报Cannot read property ‘__ob__‘ of undefined错误

        最近需到一个在开发中很常见错误,原因是自己开发时没仔细检查代码,删除数据时把data中return一并删除了,导致路由跳转点击无反应。data函数在Vue中是一个特殊的方法,用于定义组件的本地状态。经翻阅相关文档,了解到它必须返回一个对象,该对象包含在组件中使用的各种数据属性。

        错误写法:

export default {  
  data() {  
  
  }  
}

        如果您的data函数没有返回任何东西(或者返回null或一个非对象值),那么您可能会看到类似的错误消息,指示数据未定义或未预期的类型的错误。如下:

vue.min.js:6 TypeError: Cannot read property '__ob__' of undefined
    at a.e.$destroy (vue.min.js:6)
    at destroy (vue.min.js:6)
    at b (vue.min.js:6)
    at b (vue.min.js:6)
    at b (vue.min.js:6)
    at a.__patch__ (vue.min.js:6)
    at a.e.$destroy (vue.min.js:6)
    at destroy (vue.min.js:6)
    at b (vue.min.js:6)
    at $ (vue.min.js:6)

        如上问题,解决办法是要么不写data(){},要么必须写return返回对象;确保您的data函数始终返回一个对象,以包含您需要在组件中使用的数据属性。 

         一个基本的data函数示例,其中返回一个对象,包含一个名为message的属性:

export default {  
  data() {  
    return {  
      message: 'Hello Vue!'  
    }  
  }  
}

        在以前项目开发中有人遇到此类错误,大家一起分析过,没想到事隔大半年因自己粗心大意,也犯了这么低级错误。

猜你喜欢

转载自blog.csdn.net/jiciqiang/article/details/132010504