一、背景
vue3.0,项目登陆之前访问某个可访问的页面,当跳转到需要登陆才能访问的页面时,跳转到登陆页面,登陆后再跳转到登陆之前需要登陆才能访问的页面,跳转时发现参数丢失了。
A页面(无需登陆)===> B页面(需要登陆)====> 如果未登陆跳转到C登陆页面 ===> 登陆后跳转到B页面
这时发现之前设置好的访问B页面的参数丢失了。
二、报错信息
后端报错显示本应是int的参数变成了string。
三、问题分析
前端断点显示path值也有带参数
但是登陆后参数丢失了
四、解决方案
最后发现是
this.$router.replace({
path:path
});
这段代码的问题。把它改成
this.$router.replace(path);
再跳转到about页面,就会带上参数?id=50,能正确跳转了。
我猜测上面那段代码里{path:path}中的path应该是to.path的值“/about”,所以跳转时没有携带参数,具体为什么会变成这个值我现在也没搞明白。