配置react-router,在浏览器上点击返回,无法匹配到上一次的路由

发布于 2022-09-11 20:10:27 字数 2061 浏览 13 评论 0

我现在配置了一个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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

分開簡單 2022-09-18 20:10:27

从这个过渡组件跳转其他组件的时候用 history.replace()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文