javascript - Nuxt - 动态路由生成返回状态 400
问题描述
我正在为我的应用程序使用 Nuxt,并希望将其连接到我的服务器以获取数据。
为了生成动态路由,我使用了内置的 generate 方法,但我遇到了一些问题。
当使用生成命令时,它会得到这个ERROR Request failed with status code 400
,但是当我访问相同的 URL 时它工作正常。此外,当我控制台记录每个单独的路线时,它会正确显示。
代码:
generate: {
routes() {
return axios.get('https://api-mcl.herokuapp.com/api/v1/companies').then(res => {
return res.data.data.map(company => {
return { route: `/companies/${company.slug}` }
})
})
}
}
截屏:
非常感谢任何帮助!
解决方案
弄清楚了。
问题在于组件中的 asyncData 函数。
函数是这样的:
async asyncData({ $axios, params }) {
const { data } = await $axios.get(`/companies/${params.id}`)
return { company: data.data }
但我应该像这样使用有效载荷:
async asyncData({ $axios, payload, params }) {
if (payload) {
return { company: payload }
} else {
const { data } = await $axios.get(`/companies/${params.id}`)
return { company: data.data }
}
}
推荐阅读
- java - 使用不同帐户的 Google 登录在应用程序中崩溃
- laravel - 发送电子邮件并以 laravel 形式获得回复
- python - 如何打破while循环
- performance - 为什么动画代码和下一个动画帧之间有这么长的时间?
- regex - 两位数下一个点两位数下一个点两位数两个字母在单行文本字段中使用正则表达式
- web - PWA 在某些国家/地区受到限制?喜欢中国?
- scala - 如何以特定的时间间隔从服务器向客户端发送 Web 套接字消息?
- mysql - Mysql搜索组或字符串中的特定单词
- java - 在 jdk 1.8.0 编译器中从用户获取输入值
- angular - Vmmem 在 1GB 内存使用时崩溃