async-await - 为什么在 Nuxt 中使用 Async with Axios 时不返回任何数据?
问题描述
我的列表中没有任何数据。当我使用 fetch 时它可以工作(请参阅脚本标签中的注释代码),但当我使用 axios 时却不行。
这是代码:
<template>
<div>
<ul>
<li v-for="(mountain, index) in mountains" :key="index">
{{ mountain.title }}
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
mountains: [],
};
},
/*async fetch() {
this.mountains = await fetch(
"https://api.nuxtjs.dev/mountains"
).then((res) => res.json());
}, */
async asyncData() {
const mountains = await axios.get(`https://api.nuxtjs.dev/mountains`);
return { mountains };
},
};
</script>
解决方案
在 Nuxt Axios 的帮助文档中,我发现您需要添加 $axios 作为参数,并在 axios 和 get 之前添加 $。请参见下面的代码:
async asyncData({ $axios }) {
const mountains = await $axios.$get(`https://api.nuxtjs.dev/mountains`);
return { mountains };
},
现在它完美无缺!
推荐阅读
- c# - 从 txtfile 读取时,我的循环忽略了一些匹配值
- apollo - 图形 | 阿波罗客户端 | 如何更改现有订阅中的变量?
- html - Apple Safari 在页面重新加载后保留 html 更改
- r - R中的递归滚动平均值
- html - Bootstrap 4 Tab On Click不填充内容
- visual-studio - 不在 appxbundle 中的 PDB 文件
- javascript - Highcharts Word cloud,我需要正确显示图表数据的表格
- mysql - SQL Join 与代码聚合
- python - Matplotlib Plot3D 曲面/线/散点图如何定义 z 顺序
- git - 需要删除 repo 中的重复提交;无法撤消错误的合并提交