记最近踩的动态路由跟微信的坑

278 阅读1分钟

现象:

在微信环境页面变了,但是路由没有变

起因:

用了动态路由 path='/index/:id'

过程:

微信环境点击path(/index/:id)进入页面之后,进入购买页面(/buy),唤起微信支付的时候,提示我页面路径未注册,提醒的是path这个路径,可是我明明已经跳转页面了

处理:

  1. 在/buy页面使用微信的复制当前页面,发现是/index/:id页面
  2. 使用location.href打印当前页面,发现没有问题,打印的是/buy/
  3. 从c链接进入页面,跳转到/buy页面唤起微信支付,没有问题

结论:

动态路由在微信环境就会造成上诉问题,vue-router & react-router-dom 都测试过,百分百复现

原因:

未知(如果有大佬了解请告知)

解决方案

  1. 避开动态路由,不用(我是这么干的)
  2. 跳转页面的时候,不用路由(push())跳转,使用a标签