web-dev-qa-db-fra.com

vue-router: this. $ router.Push ne fonctionne pas lors de la mise à jour de la requête

Je souhaite mettre à jour la requête sur l'URL. Mais, $ router.Push ne met pas à jour l'url. disp est une valeur différente pour chaque appel. Pourquoi?

handle: function(disp) {
    let route = Object.assign({}, this.$route);
    route.query.disp = disp;
    this.$router.Push(route);
},

versions.

"vue": "^2.5.17",
"vue-router": "^3.0.1",

route (console.log)

enter image description here

5
narupo

Vous ne devez pas essayer de pousser vers l'objet route. Au lieu de cela, vous devez utiliser l'un d'eux:

// literal string path
router.Push('home')

// object
router.Push({ path: 'home' })

// named route
router.Push({ name: 'user', params: { userId: 123 }})

// with query, resulting in /register?plan=private
router.Push({ path: 'register', query: { plan: 'private' }})

Dans ton cas:

this.$router.Push({path: this.$route.path, query: {disp: disp}})
2
Niko Peltoniemi

J'ai arrêté la copie de this.$route objet. C'est très bien.

0
narupo