web-dev-qa-db-fra.com

Le champ Params est vide dans $ router.push

J'utilise ceci

this.$root.$router.Push({ path: '/dashboard', params: { errors: 'error' }, query: { test: 'test' } })

dans mon composant pour rediriger vers une autre URL lorsqu'une erreur s'est produite. Le problème est que lorsque je veux accéder au champ params dans le composant de tableau de bord, il est vide. Le champ query fonctionne bien. J'essaie d'y accéder par this.$route.params.errors.

14
Jozef Cipa

Vous ne pouvez utiliser params qu'avec les chemins named (je pense).

Exemple:

//route (in your router file should have "name")
{ path: '/errors', name: 'EXAMPLE', component: ... }

//navigating
this.$router.Push({
    name: 'EXAMPLE', 
    params: { errors: '123' }
});

Maintenant, il aura la valeur correcte dans this.$route.params.

33
euvl

Si vous ne souhaitez pas utiliser les routes nommées , vous pouvez essayer ceci :

ES6

this.$root.$router.Push({
    path: `/dashboard/${error}`, 
    query: { test }
})

ES5

this.$root.$router.Push({
    path: '/dashboard/' + error, 
    query: { test: 'test' }
})
5
Rob