1. 程式人生 > >vue 報錯:Cannot read property 'xxx' of undefined",但是頁面能渲染上資料

vue 報錯:Cannot read property 'xxx' of undefined",但是頁面能渲染上資料

有時候會遇到給頁面繫結資料的時候,可以繫結成功,但vue warn:xxx屬性of undefined,,,如果本元件只是繫結簡單的資料倒是可以忽略,如果本元件還引入了其他元件或第三方元件,外掛,則就渲染不出來,就需要解決了,

<template>
    ...
    <span>{{data.xxx.xx}}</span>
    ...
</template>

<script>
export default {
  data () {
    return {
      data: {
      	xxxx:""
      }
    };
  },
  methods: {
   .....請求到資料賦給data.xxxx;
  }
  created () {
    this.getData();
  }
};
</script>  

頁面上能渲染成功,但是vue仍然警告資料屬性undefined,,
因為是非同步請求,頁面渲染剛開始的時候還沒有拿到這個值,所以會報錯。你需要在節點上用if判斷一下,在有資料的時候再進行渲染。

<template>
    ...
    <span v-if="data.xxx&& data.xxx.xx">{{data.xxx.xx}}</span>
    ...
</template>

或者你在宣告data的時候,將裡面的欄位也一併宣告出來,往下多宣告一下資料。

參考https://www.cnblogs.com/huancheng/p/9188287.html