vue-router: this.$router.push 在更新查询时不起作用

nar*_*upo 6 javascript vue.js vue-router

我想更新对 url 的查询。但是,$router.push 不会更新 url。disp每次调用都有不同的值。为什么?

handle: function(disp) {
    let route = Object.assign({}, this.$route);
    route.query.disp = disp;
    this.$router.push(route);
},
Run Code Online (Sandbox Code Playgroud)

版本。

"vue": "^2.5.17",
"vue-router": "^3.0.1",
Run Code Online (Sandbox Code Playgroud)

路线(控制台.log)

在此处输入图片说明

小智 6

您不应该尝试推送到路线对象。相反,您应该使用其中之一:

// 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' }})
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

this.$router.push({path: this.$route.path, query: {disp: disp}})
Run Code Online (Sandbox Code Playgroud)