obj 有时是未定义的,有时却可以完美运行

在计算属性中,我试图将从 API 接收到的 ID 与对象数组进行匹配,其中 ID 键也是从 API 接收的,并从匹配的 ID 对象中检索名称键。


obj 变量偶尔会抛出“obj 未定义”错误,但不一致。


我认为这与 ID 异步有关。将函数从箭头更改为经典函数,以免与 this 范围混淆。


  data() {

    return {

      upComing: [],

      popular: [],

      topRated: [],

      playingNow: [],

      details: [],

      genres: []

    }

  },


  computed: {

    genre: function() {

      let list = this.upComing[0] ? this.upComing[0].genre_ids[0] : 0

      let obj = this.genres.find(function(o) {

        return o.id === list

      })

      return obj.name

    }

  },


  created() {

    let self = this

    APIService.getUpcoming()

      .then(response => {

        self.upComing = response.data.results

        //console.log(this.upComing)

      })

      .catch(error => {

        console.log(`There was an error: ${error.response}`)

      }),

      APIService.getGenres()

        .then(response => {

          this.genres = response.data.genres

          //console.log(this.genres)

        })

        .catch(error => {

          console.log(`There was an error: ${error.response}`)

        })

  }

}


我明白这个TypeError: "obj is undefined"和这个[Vue warn]: Error in render: "TypeError: obj is undefined"


并且每次抛出它们两次。所以我在控制台中有 4 个错误,但只有这 2 个错误,延迟 1 秒。


子衿沉夜
浏览 341回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript