gpt4 book ai didi

javascript - 在 Vue js 中导入 axios 方法的正确语法

转载 作者:行者123 更新时间:2023-11-29 10:29:10 26 4
gpt4 key购买 nike

我试图通过导入它们而不是直接在创建的钩子(Hook)中调用它们来将我的 axios 调用与我的主 vue 实例分开。

我把它放在一个名为 data.js 的单独文件中

import axios from 'axios'
export default{
myData() {
return axios.get(`http://localhost:8080/data.json`)
.then(response => {
// JSON responses are automatically parsed.
return response.data;
})
.catch(e => {
return this.myErrors.push(e)
});
},

在我的 vue 实例中,我有以下内容:

import myDataApi from '@/api/data.js'

export default {
name: 'app',
components: {
myDataApi, // not sure if this is correct
},
data: function () {
return {
myInfo: '',
}
},
created() {
this.myInfo = myDataApi.myData();
console.log('this.myInfo= ', this.myInfo)
},

我正在尝试使用 myData 调用的 json 填充 myInfo。这将返回 [object Promise]在 Vue devtools 中作为 Promise {<pending>}在控制台中。

我需要的所有数据都在 Promise {<pending>} 里面在一个名为 [[PromiseValue]]:Object 的数组中所以我知道它有效,我只需要知道实现它的正确方法。

最佳答案

我目前没有启用测试此功能的开发环境,但我确实注意到您正在尝试在组件初始化时分配一个变量。该对象是一个 promise,但在导入它的组件内部解析后,您并没有处理该 promise。

我建议尝试在实际组件内部处理 promise,例如:

import myDataApi from '@/api/data.js'

export default {
name: 'app',
components: {
myDataApi, // not sure if this is correct
},
data: function () {
return {
myInfo: '',
}
},
created() {
myDataApi.myData()
.then((data) => {
this.myInfo = data
console.log('this.myInfo= ', this.myInfo);
});
.catch((e) => handleError) // however you want to handle it

},

关于javascript - 在 Vue js 中导入 axios 方法的正确语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50901701/

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