gpt4 book ai didi

vue.js - VueJS 从 API 获取数据后不更新 DOM?

转载 作者:行者123 更新时间:2023-12-02 06:39:18 24 4
gpt4 key购买 nike

我正在尝试创建一个有关照片列表的示例,但在调用 API 后将数据绑定(bind)到组件时发现出现问题。

JS代码:

<script>
// photo item
Vue.component('photo-item', {
props: ['photo'],
template: `<li>{{ photo.name }}</li>`
});

// List of photos
Vue.component('photo-list', {
props: ['photos'],

template: `
<ul id="photo-list">
<photo-item v-for="photo in photos" :photo="photo"></photo-item>
</ul>`
});

new Vue({
el: "#photo_detail",
data: {
photos: []
},

created: function() {
axios
.get('/api/photos')
.then(function (response) {
this.photos = response.data; // Data existed
})
.catch(function (err) {
console.log(err);
});
}
})
</script>

HTML 代码

<main id="photo_detail">
<photo-list v-for="photo in photos" :photo="photo"></photo-list>
</main>

从 API 获取所有照片后,据我了解,变量 photos 将自动绑定(bind),VueJS 将更新 DOM。

VueJs 2.1.6

任何帮助。

谢谢!

最佳答案

问题在于 function() 中的 this 值,该值的范围为 axios 而不是 vue instance 。或者您可以使用 (response)=> 直接使用 this

new Vue({
el: "#photo_detail",
data: {
photos: []
},

created: function() {
var self=this;
axios
.get('/api/photos')
.then(function (response) {
self.photos = response.data; // Data existed
})
.catch(function (err) {
console.log(err);
});
}
})

关于vue.js - VueJS 从 API 获取数据后不更新 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51798345/

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