问题描述
在项目中,调整路径经常需要携带参数过去
常见的携带参数的方式,就是通过query和params的方式
this.$router.push({
name: `test`,
params: {
a: 1,
}
})
//或者
this.$router.push({
path: `/test`,
query: {
a: 1,
}
})
//接受参数
this.$route.params.a
this.$route.query.a
原因分析:
如果传递的参数是个对象,那么刷新或者调整再回来,参数的值就会变成[Object,Object],页面上显示就会出现错误
解决方案:
如果携带的参数个数少的情况下,可以直接写在query或者params中。
如果必须要携带对象的参数。,就要把对象使用JSON.stringify(Obj)
转换
this.$router.push({
path: `/test`,
query: {
Obj:JSON.stringify(obj)
}
})
接受时
let obj = JSON.parse(this.$route.query.Obj);