启动路由器时出现意外错误:错误:缺少必需的参数“catchAll”

Posted

技术标签:

【中文标题】启动路由器时出现意外错误:错误:缺少必需的参数“catchAll”【英文标题】:Unexpected error when starting the router: Error: Missing required param “catchAll” 【发布时间】:2021-07-21 05:24:51 【问题描述】:

有人知道我为什么收到这个警告吗?

[Vue路由器警告]:

router.beforeEach((to, from, next) => 
  const isAuthenticated = store.getters['users/isAuthenticated']

  if (!isAuthenticated && to.name !== 'Login' && to.name !== 'Registration' && to.name !== '404') 
    next(
      name: 'Login'
    )
   else if (isAuthenticated && store.getters['users/getUserName'] !== to.params.userName)   
    next(
      name: '404'
    )
   else 
    next()
  

)

【问题讨论】:

【参考方案1】:

我看到你在 Vuejs.org 论坛上发布了同样的问题:

https://forum.vuejs.org/t/unexpected-error-when-starting-the-router-error-missing-required-param-catchall/115388/3

为了完整起见,如果其他人遇到同样的问题(就像我一样),因为您正在按名称 name: '404' 导航到代码中的路线,因此您必须添加 * 以获取重复模式。

您原来的路由器可以捕获 Vue 论坛上发布的所有内容:


  path: '/:catchAll(.*)',
  name: '404',
  component: () => import(/* webpackChunkName: "404" */'@/views/404')

你需要使用/:catchAll(.*)*,如下:


  path: '/:catchAll(.*)*',
  name: '404',
  component: () => import(/* webpackChunkName: "404" */'@/views/404')

根据论坛上的回答,有关更多信息,请参阅 Vue 路由器文档中的以下参考页面:

https://next.router.vuejs.org/guide/migration/index.html#removed-star-or-catch-all-routes https://next.router.vuejs.org/guide/essentials/dynamic-matching.html#catch-all-404-not-found-route

【讨论】:

以上是关于启动路由器时出现意外错误:错误:缺少必需的参数“catchAll”的主要内容,如果未能解决你的问题,请参考以下文章

域路由错误 Laravel 中缺少必需的参数

启动应用程序时出现意外错误

启动 Intel python3.7 shell 时出现意外错误:无法执行任何命令 - 中止错误

C# HttpWebRequest POST => !!处理请求时出现意外错误:无效的 %-encoding

尝试在终端中启动反应应用程序时出现意外令牌 (9:13) 错误

当我尝试将函数的参数设置为默认值时出现意外错误