Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 将路由推送到函数(Vue)内的父组件_Vue.js_Routes_Vue Router_Router - Fatal编程技术网

Vue.js 将路由推送到函数(Vue)内的父组件

Vue.js 将路由推送到函数(Vue)内的父组件,vue.js,routes,vue-router,router,Vue.js,Routes,Vue Router,Router,我觉得我错过了一些非常明显的东西,但我无法理解。请帮忙! 我定义了以下路线: const routes = [ { path: '/', name: 'Login', component: () => import('../views/Login.vue'), meta: { authRedirect: true } }, { path: '/companies', name: 'Companies',

我觉得我错过了一些非常明显的东西,但我无法理解。请帮忙! 我定义了以下路线:

const routes = [
  {
    path: '/',
    name: 'Login',
    component: () => import('../views/Login.vue'),
    meta: {
      authRedirect: true
    }
  },
  {
    path: '/companies',
    name: 'Companies',
    component: () => import('../views/Companies.vue'),
    meta: {
      requiresAuth: true
    }
  },
  {
    path: '/companies/:id',
    name: 'Company',
    component: () => import('../views/Company.vue'),
    meta: {
      requiresAuth: true
    }
  },
  {
    path: '*',
    name: '404',
    component: () => import('../views/404.vue')
  }
]
然后,我的组件中有以下内容:

export default {
  name: 'Company',
  data() {
    return {
      company: {}
    }
  },
  methods: {
    getCompanyDetails: function() {
      let self = this
      axios.get('/api/companies/' + this.$route.params.id).then(function(response) {
        self.company = response.data
      }).catch(function() {
        self.$router.push('companies')
      })
    }
  },
  created() {
    this.getCompanyDetails()
  }
}

如果API返回数据,基本上一切都正常,但是在
catch
函数中,我试图将路径推回到/companys。但它正在重定向到/公司/公司。如何将其重定向到正确的路由?

您是否尝试了
$router.push(“/companys”)
(路径中有/


此外,您还可以使用
$router.push({name:'companys'})
如果您想让它更清楚,它将匹配路由中定义的
名称。

您缺少正斜杠<代码>自我。$router.push('/companys')