【问题标题】:How to send new params before resolving a route in vue?如何在 vue 中解析路由之前发送新参数?
【发布时间】:2019-09-02 14:03:13
【问题描述】:

我的这条路线有一个value 参数

  routes.push({
    name: 'test',
    path: '/test/:value',
    component: resolve(__dirname, 'src/pages/test.vue'),
  });

我想更新路由,以便它实际发送value 和test 作为参数

  routes.push({
    name: 'test',
    path: '/test/:value',
    component: resolve(__dirname, 'src/pages/test.vue'),
    beforeEnter(to, from, next) {
      to.params.test = 'test';

      next({ params: to.params });
    },
  });

然后我可以在一个 vue 页面中捕捉它

async fetch({ store, route }) {
  console.log(route.params.value);
  console.log(route.params.test);
},

我在上面创建的beforeEnter 代码不起作用.. 新的test 参数未发送。

有什么想法吗?

【问题讨论】:

  • test 不是您路线中的参数
  • 在您的示例代码中不应该是path: '/:test/:value',;而不是path: '/test/:value',
  • 我知道。我想添加它。不想改变路由路径
  • 然后将其添加到组件中的参数中,而不是路由定义中
  • 嘿,我不是 vue 编码员,但你看过中间件实现吗? markus.oberlehner.net/blog/…

标签: javascript vue.js vue-router nuxt.js


【解决方案1】:

显然next 将 params 对象作为参数

next(to.params)

有效,但我在文档中找不到它

编辑Working example

您确定问题不在其他地方吗?尝试在示例 codepen 中记录参数

【讨论】:

  • 我让它工作..不知道如何..我只是重写了我所有的逻辑。谢谢
【解决方案2】:

尝试为 next 提供路径/名称,如下所示:

  routes.push({
    name: 'test',
    path: '/test/:value',
    component: resolve(__dirname, 'src/pages/test.vue'),
    beforeEnter(to, from, next) {
      next({ name: 'test', params: { test: 'test' });
    },
  });

【讨论】:

  • 我尝试给它path or name 但不起作用
  • 您在路径中声明的参数是否也会发生这种情况?
猜你喜欢
  • 2019-02-24
  • 1970-01-01
  • 2017-07-14
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2020-08-11
  • 2017-12-24
相关资源
最近更新 更多