如何在方法函数中将参数传递给 vue.js 路由器?

Kar*_*lom 5 javascript vue.js vue-router

我正在尝试将“joke.id”作为参数发送到路由器:

edit: function(joke) {
    this.$router.push({ '/edit/' + joke.id }); 
}
Run Code Online (Sandbox Code Playgroud)

相关路线是:

{path: '/edit/:id', component: editJoke, name: 'editJoke'},
Run Code Online (Sandbox Code Playgroud)

但是我在控制台中得到了这个:

模块构建失败:语法错误:意外的令牌

this.$router.push({ '/edit/' + joke.id }); 
  |                          ^
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

awn*_*ton 9

您可以使用以下语法将参数传递给路由器:

edit: function(joke) {
    this.$router.push('/edit/' + joke.id)
}
Run Code Online (Sandbox Code Playgroud)

如果您已命名路线,则可以改用以下语法:

edit: function(joke) {
    this.$router.push({ name: 'edit', params: { id: joke.id }})
}
Run Code Online (Sandbox Code Playgroud)

在此处阅读有关使用 Vue Router 进行编程导航的更多信息。


小智 5

函数内不需要花括号push。你的代码应该是这样的:

this.$router.push('/edit/' + joke.id); 
Run Code Online (Sandbox Code Playgroud)