Nuxt-动态路由生成返回状态400

问题描述 投票:0回答:1

我正在为我的应用程序使用Nuxt,并希望将其连接到服务器以获取数据。

要生成动态路由,我使用了内置的generate方法,但是遇到了一些问题。

当使用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}` }
            })
        })
    }
}

截屏:

enter image description here

非常感谢您的协助!

javascript vue.js nuxt.js
1个回答
0
投票

想通了。

问题出在组件中的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 }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.