配置react-router,在浏览器上点击返回,无法匹配到上一次的路由
我现在配置了一个Transition的页面,这个页面想要做到是:当项目第一次启动在浏览器上输入localhost:3000时,router匹配到Transition,在Transition上做些其它的逻辑,再通过this.props.history.push({pathname:"/admin/home"})跳转到Home页面(用户页面)。现在发现正常从Transition跳转到Home页面问题,当我在其它页面来回切换时(用户页面和批量添加用户页面),再点击浏览器上的返回按钮,router会自动匹配到Trasition页面,如何让其匹配到上一次的页面?
export default class ERouter extends React.Component{
render(){
return (
<HashRouter>
<App>
<Switch>
<Route path="/login" component={Login}/>
<Route path='/transition' component={Transition} />
<Route path="/noMatch403" component={NoMatch403}/>
<Route path="/" exact render={()=>
<Switch>
<Redirect to="/transition" />
</Switch>
} />
<Route path="/admin" render={()=>
<Admin>
<Switch>
<Route path='/admin/home' component={Home} />
<Route path='/admin/batchuser' component={Batchuser} />
</Switch>
</Admin>
} />
<Route component={NoMatch404} />
</Switch>
</App>
</HashRouter>
);
}
}
如图:
当我在“用户(Home)”和“批量添加用户(Batchuser)”的路由上来回切换的时候,点击浏览器上的返回,会自动匹配到Transition页面(浏览器地址显示:http://localhost:3000/#/transition),按正常做法应该是会返回到Home或者Batchuser页面,请教下为啥会出现这样的情况?我的路由配置应该如何修改?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从这个过渡组件跳转其他组件的时候用 history.replace()