vue火狐浏览器中路由跳转报错“invalid regexp group”

新手上路,请多包涵

项目中在谷歌浏览器运行很正常,但在火狐浏览器中运行就会报错。

this.$router.push({
    name: 'envDetail',
    query: {
        envId: '123123'
    }
})

这个是route.js里这个路由的部分

{
        path: '/env',
        component: () => import('viewsPath/envs/index.vue'),
        children: [
          {
            path: 'envInfo',
            component: () => import('viewsPath/envs/envInfo/index.vue'),
            children: [
              {
                path: 'envDetail',
                name: 'envDetail',
                component: () => import('viewsPath/envs/envInfo/envDetail.vue'),
              },
            ],
          },

以下是错误现象
豆芽图片20200122171426940.png
一开始我以为是name参数的问题,我又改成了使用

this.$router.push({
    path: '/env/envInfo/envDetail',
    query: {
        envId: '123123'
    }
})

但是无效。
然后我又改成了

const { href } = this.$router.push({
    path: '/envDetail',
    query: {
        envId: '123123'
    }
});
window.open(href);

依旧无效。
有一个奇怪的地方是另一个页面的路由跳转采用了第一种方式,并没有报错,这个是正常的路由

this.$router.push({
    name: 'adminAuth',
    query: {
        sysId: '1111',
        sysName: 'xxxxx'
    }
});

这个是route.js里这个路由的部分

{
        path: '/auth',
        name: 'auth',
        component: () => import('viewsPath/auth/index.vue'),
        redirect: '/auth/adminAuth',
        children: [
          {
            path: 'adminAuth',
            name: 'adminAuth',
            component: () => import('viewsPath/auth/adminAuth.vue'),
          },
          {
            path: 'sysAuth',
            name: 'sysAuth',
            component: () => import('viewsPath/auth/sysAuth.vue'),
          },
        ],
      },

这两个路由唯一的区别就是层级,产生错误的路由是一个三层级的子路由,正确的是二层级的子路由。我以为是这个原因导致,所以将路由envDetail修改成了一层和两层都尝试了一下,结果仍旧报错。
页面逻辑里也都没有关于正则匹配的地方。
所以 有没有人遇到过类似的问题,或者能够提供一些解决的思路。谢谢!

阅读 3.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题