我正在做一个React Redux项目,我很难让URL正确更新,以与点击"返回"时显示的视图保持一致。按钮。不管"后退"在哪里;按钮将您带回到,URL总是显示为"Dashboard",即使视图不是"Dashboard"。我对React和Redux都很陌生(对Javascript/Typescript也很陌生),所以我不确定这里到底发生了什么,但是路由中有一个Switch语句。TSX文件如下所示:
<Switch>
<Redirect exact from="/" to="/Dashboard" />
{categoryLayouts}
<CoreLayout exact path="/error" component={ErrorPageComponent} />
<CoreLayout exact path="/unauthorized" component={UnauthorizedMessageComponent} />
</Switch>
如果我改变了"Dashboard"到另一个视图的名称,然后当您使用" back "返回时,URL将显示更改。按钮,但显示的视图仍然正确。
我有一种感觉,这是需要改变的地方,但我正在努力弄清楚到底发生了什么,以及如何解决这个问题。
你的问题的评论已经告诉你为什么它不工作->Switch的direct子节点必须是Route或Redirect。
不仅如此,你的CoreLayout"应该在Router的父类中完成,不管是什么在消耗Router。路由器应该只负责"路由"。→单一责任。
如果任何特定的布局不能在Router的父类中完成,那么就在该路由的组件中完成,比如侧边栏。