Vue.JS - Api 请求 - 未捕获(在承诺中)TypeError:无法读取未定义的属性(读取“quote”)
2022-05-30
2760
<template>
<article class="message is-warning">
<div class="message-header">
<span>Code Quotes</span>
</div>
<div class="message-body">
<span v-html="fetchedQuotes.data.quote"></span>
<span>{{fetchedQuotes.data.author}}</span>
</div>
</article>
</template>
<script>
export default {
data(){
return {
fetchedQuotes: [],
contentUrl: "https://apiurl.tld/"
};
},
mounted() {
this.getQuotes(this.contentUrl, "quotes");
},
methods: {
async getQuotes(url, collection) {
try {
let response = await fetch(url + collection+"/"+Math.ceil(Math.random()*6));
this.fetchedQuotes = await response.json();
} catch (error) {
console.log(error);
}
}
}
};
</script>
我正尝试从 Directus 项目 API 中随机获取报价。 但此代码一直显示错误 :
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'quote').
我尝试了几种不同的解决方案,但现在我陷入困境,需要帮助找出是什么阻止了此代码运行。
如能提供任何帮助,我们将不胜感激。
1个回答
问题是,您尝试在提取
fetchedQuotes.data.quote
之前对其进行访问。要解决此问题,请检查您的 html 标记中的
fetchedQuotes
是否为空
<span v-html="fetchedQuotes.data.quote" v-if="fetchedQuotes.length != 0"></span>
Azamat
2022-05-31