gpt4 book ai didi

javascript - 未捕获( promise )TypeError : Cannot set property of undefined with axios

转载 作者:搜寻专家 更新时间:2023-10-30 22:52:37 24 4
gpt4 key购买 nike

我有这个 vue.js 组件,它使用 axios 来检索 joke 对象的 json 数组:

<template>
<div id="show-jokes-all">
<h2>Showing all jokes</h2>
<div v-for="joke in jokes">
<h2>{{joke.title}}</h2>
<article>{{joke.body}}</article>
<hr>
</div>

</div>
</template>

<script>
import axios from 'axios';

export default {
name: 'showJokes',

data () {
return {
jokes:[]

}
},

methods: {

},

created() {
axios.get('http://127.0.0.1:8090/api/jokes).then(function(data){
//console.log(data); works fine
this.jokes = data.body;
});
}
}
</script>

当我在控制台中记录结果时,它很好,但是当我尝试将它放入 jokes 数组时,我得到了

Uncaught (in promise) TypeError: Cannot set property 'jokes' of undefined

这可能是一个微不足道的错误,但作为 vue.js 的新手,我很了解这一点,所以感谢您的提示。

最佳答案

你不在这个上下文中。您应该将 this 上下文存储在一个变量上。

 created() {
let self = this
axios.get('http://127.0.0.1:8090/api/jokes').then(function(data){
//console.log(data); works fine
self.jokes = data.body;
});
}

How to access the correct this inside a callback?里面有很多方法.很多方法都可以引用这里。

感谢 Bert 的评论

关于javascript - 未捕获( promise )TypeError : Cannot set property of undefined with axios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45743395/

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