TypeError: Cannot read properties of undefined (reading "xxx")报错

我遇到的情况是请求的数据比较大,数据是一个json对象,层数挺多,之所以会报这个错是因为请求的数据还没到就被调用,用?.可以避免,例子

let a = reactive({
  data: {}
})
Axios.get(..).then(d => {
  a.data = d
})
d类似这样:
{
  n: {
    m: {
        i: "http://xxxx.jpg"
    }
  }
}

要取出i应该这样:
<img :src="a.data?.n?.m?.i" />

但是这样做的话,数据没有,把边框或者无效图片显示出来看起来挺丑的,也可以通过v-if条件渲染,避免这种情况
<div v-if="a.data?.n?.m?.i">
  <img :src="a.data?.n?.m?.i" />
</div>

posted on 2022-04-11 23:31  In-6026  阅读(1205)  评论(0)    收藏  举报

导航