这里踩到一个隐性问题,先描述问题:
路由结构:
- /home(index.tsx)
----------- children:[
----------- /home,//默认页home.tsx
-----------/home/about
------------ ]
- /details
问题:/home,跳转到/details,然后home有代码设定home?id=123456,会获取id,执行请求并跳转到/details,(你们不需提出流程问题,项目相关业务与场景不便解释说明),问题来了,
我在home的index.tsx下面有是处理以前的地址正确跳转项目新地址,导致在其他页面输入home?id=123456,触发了重定向,就id丢失了,导致我在home怎么都拿不到id,因为地址输入正常,完全没想到会触发重定向
就比如我现在,在 /details,复制链接https://****/home?id=123456,以为是在home页面接收到id,结果按下回车。id就没了,就是触发了Redirect,但是重定向没有附带参数,导致在home.tsx里面拿不到id,
处理:在重定向继承url参数即可
<Redirect
to={{
pathname: '/home',
search: `${this.props.history.location.search}`,
}}
/>