使用this.$route.params接收的参数为undefined


问题:

使用this.$router.push跳转页面并用params方式传参,能够跳转页面但是使用this.$route.params接收的参数为undefined

原因:

在传参的页面中的this.$router.push使用了path而不是name,因为params只能用name来引入路由,不然接收参数会出现undefined

错误用法:

methods:{
  jump (){
    this.$router.push({path: '/xxx/login',params:{ id:'1'}});

正确用法:

methods:{
  jump (){
    this.$router.push({name: 'login',params:{ id:'1'}});

这里的name指路由中的name,比如路由中是:

{
title: '登录',

path: '/xxx/login',

name: 'login',

component: () => import('@/xxx/xxx/xxx')

那么name就是login