【发布时间】:2020-09-16 14:25:44
【问题描述】:
我有一个包含方法的vue 组件,该方法包含此路由器推送,它试图推送到另一个vue 组件:
GetAnimal.vue:
...
this.$router.push({
name: "/viewanimal",
});
...
我有这个路由器的映射:
router.js:
{
path: "/viewanimal",
component: () => import('./views/DisplayAnimal.vue')
},
{
path: "/getanimal",
component: () => import('./views/GetAnimal.vue')
}
但是,当GetAnimal.vue 中的代码被执行时,我在控制台中得到了这个:
然后我被定向到http://localhost:8080/。
我也试过了
...
this.$router.push({
name: "viewanimal",
});
...
但它也不起作用。
编辑:
我试过了: router.js:
{
path: "/viewanimal",
name: "viewanimal",
component: () => import('./views/DisplayAnimal.vue')
},
{
path: "/getanimal",
name: "getanimal",
component: () => import('./views/GetAnimal.vue')
}
GetAnimal.vue:
console.log("this.animal: " + JSON.stringify(this.animal)); //displays good JSON
this.$router.push({
name: "viewanimal",
params: this.animal
});
DisplayAnimal.vue:
created() {
console.log("animal param: " +
JSON.stringify(this.$route.params.animal)); //prints undefined
}
---animal参数好像没有传递。我不确定是路由器的路径/名称问题还是其他问题---。
更新:
设法使它工作。这应该在GetAnimal.vue:
this.$router.push({
name: "viewanimal",
params: {
animal: this.animal
}
});
【问题讨论】:
-
给定的答案有效吗?
-
应该是
this.$router.push({ path: '/viewanimal' })或this.$router.path('/viewanimal')。 -
@tony19 否。这个:stackoverflow.com/a/50082888/4759176 表示如果我想传递参数路径将不起作用,我必须改用名称。
-
@parsecer 这个意图在你原来的问题中并不明显,它没有参数。
标签: javascript vue.js vuejs2 vue-router