yid*_*kop 7 vue.js axios vuejs3
我想axios在我的 Vue 3 应用程序中创建一个全局可用的实例。
设置:
\nimport { createApp } from \'vue\'\nimport axios from \'axios\'\n\nconst axiosInstance = axios.create({\n withCredentials: true,\n})\n\nconst app = createApp()\n\napp.config.globalProperties.$axios = axiosInstance\n\napp.mount(el)\nRun Code Online (Sandbox Code Playgroud)\n用法:
\nlet response = await this.$axios.get(\'/api/leads\')\nRun Code Online (Sandbox Code Playgroud)\n我收到此错误:
\nTypeError: this.$axios.get is not a function\nRun Code Online (Sandbox Code Playgroud)\n好像this.$axios是undefined。我不明白为什么。
笔记:
\n@vue/compatVue 的构建从 Vue 2 迁移到 Vue 3。我正在遵循官方迁移指南。this.$axios- 我得到\xc6\x92 wrap() ......该问题是由一个已知的 bug引起的,其中函数属性( 的结果axios.create()实际上是一个函数)绑定到组件实例代理,这无意中隐藏了函数自己的附加属性(即$axios.get在本例中)。修复该问题的 PR尚未合并。
解决方法是axiosInstance使用扩展运算符将(函数)转换为对象:
const axiosInstance = axios.create({
withCredentials: true,
})
const app = createApp()
app.config.globalProperties.$axios = { ...axiosInstance }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13697 次 |
| 最近记录: |