路由器推送后获取asyncData中的路由参数

时间:2019-03-04 22:32:17

标签: vuejs2 vue-router nuxt.js

我正在尝试通过asyncData方法获取路由参数,如果我手动转到路由,则可以使用,但是如果使用路由器Push方法,则不会获取任何参数。

这是我的asynData方法:

  async asyncData(ctx) {
    const { id } = ctx.app.router.currentRoute.params
    await ctx.store.dispatch('user/GET_USER', id)
    return {
      user: ctx.store.state.user.user
    }
  },

这就是我导航到相应页面的方式:

goToEdit(id) {
  this.$router.push({ path: `/users/${id}/edit` })
}

2 个答案:

答案 0 :(得分:0)

您需要直接从ctx获取路线。 Here上下文参数列表

 async asyncData({ route }) {
    const { id } = route.params
    await ctx.store.dispatch('user/GET_USER', id)
    return {
      user: ctx.store.state.user.user
    }
},

答案 1 :(得分:0)

我正在以类似的方式执行此操作,但我从 context 中检索参数和几乎所有内容。

async asyncData(context) {
        const plans = await context.$axios.get("business/get-plans", {
            params: {
                currency: context.query.currency
            }
        }).then((res) => {
            return res.data;
        });

看看context.$axioscontext.query