在计算属性中,我试图将从 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 秒。
相关分类