在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ vue 報(bào)錯(cuò) :屬性u(píng)ndefined

vue 報(bào)錯(cuò) :屬性u(píng)ndefined

vue 報(bào)錯(cuò):Cannot read property 'instrumentId' of undefined"

相關(guān)代碼如下:

<template>
    ...
    <span>{{data.params.instrumentId}}</span>
    ...
</template>

<script>
export default {
  data () {
    return {
      data: {}
    };
  },
  methods: {
    // 請(qǐng)求接口獲得數(shù)據(jù)
    getData () {
      request({
        url: '/tapi/futures/'
      }).then(response => {
        if (response) {
          allData = response; // allData 是一個(gè)對(duì)象,用來(lái)儲(chǔ)蓄數(shù)據(jù)
          this.data = allData.IF;
        }
      });
    }
  },
  created () {
    this.getData();
  }
};
</script>    

結(jié)果返回的數(shù)據(jù)結(jié)構(gòu)如圖:

clipboard.png

雖然頁(yè)面可以正常顯示,但 Vue 和瀏覽器控制臺(tái)都報(bào)錯(cuò)如下,一直找不到原因,求解。

clipboard.png

回答
編輯回答
離魂曲

因?yàn)槭钱惒秸?qǐng)求,頁(yè)面渲染剛的時(shí)候還沒(méi)有拿到這個(gè)值,所以會(huì)報(bào)錯(cuò)。你需要在節(jié)點(diǎn)上用if判斷一下,在有數(shù)據(jù)的時(shí)候再進(jìn)行渲染?;蛘吣阍诼暶?code>data的時(shí)候,將里面的字段也一并聲明出來(lái)。

2017年3月28日 00:55
編輯回答
孤星
 created () {
    this.getData();
  }
把上面改成如下:
 created () {
    this.$nextTick(function(){
        this.getData();
    });
  }
2018年1月27日 08:55
編輯回答
糖果果
<template>
    ...
    <span v-if="data.params && data.params.instrumentId">{{data.params.instrumentId}}</span>
    ...
</template>
2018年4月14日 09:21