gpt4 book ai didi

javascript - Vue.js:数据更新后 View 不更新?

转载 作者:行者123 更新时间:2023-11-30 15:15:56 24 4
gpt4 key购买 nike

<div id="app">
<h1> News Aggregator </h1>
<div v-for="CurNews in news">
<div id="title">
<h1>{{CurNews.title}}</h1>
</div>
<div id="description">
<p>{{CurNews.description}}</p>
</div>
</div>
</div>








<script>
const API_KEY = "XXXXXXXXXX";
const url = "https://newsapi.org/v1/articles?";



const app = new Vue({
el: '#app',
data:{
news: [{
title:"ABC", description: "VXAEW"
}]
},
mounted(){
axios.get("https://newsapi.org/v1/articles?source=the-times-of-india&sortBy=top&apiKey=XXXXXXXXXXX").then(function(response){
this.news = response.data.articles;
//app.$set(this.news, response.data.articles);
console.log(response.data.articles);
}).catch(function(error){
console.log(error);
})
}
});

</script>

View 不会更新。此外,每当我尝试通过控制台访问响应/新闻对象时,我都会收到“引用错误:响应/新闻未定义”。 AJAX 调用完美无缺。

最佳答案

在你的 axios 请求中 .then 成功回调 this 没有指向 vue 实例,因为你使用的是普通函数语法,使用粗箭头 => 函数语法改为:

mounted(){
axios.get("your URL").then((response) => {
this.news = response.data.articles;
console.log(response.data.articles);
}).catch(function(error){
console.log(error);
})
}

或者在挂载 block 的开头声明一个 var vm 指向 vue 实例,如下所示:

mounted(){
var vm = this;
axios.get("your URL").then(function(response) {
vm.news = response.data.articles;
console.log(response.data.articles);
}).catch(function(error){
console.log(error);
})
}

关于javascript - Vue.js:数据更新后 View 不更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44454324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com