创建一个具有四个独立部分的应用程序,其中每个部分都有自己的路由和状态



在这里问这个问题是因为一个问题已经关闭,因为维护者认为这已经是 react-router 的一个受支持的用例。

我的应用程序有四个部分,可以使用左侧的侧边栏在它们之间切换。所有部分始终呈现,并且使用自定义屏幕切换器组件一次只显示一个部分。这也是为了您访问过的部分的状态不会丢失。

但是,我为此使用单个路由器时遇到了问题。当我切换到不同的部分时,我刚刚所在的部分会失去所有状态,因为它看到我现在处于完全不同的 URL,因此它会忘记加载的所有数据,并且下次访问它时必须重新加载。(我没有使用Switch来渲染这些部分,因为如果路由不匹配,则会卸载它们。不过,该部分中Switch确实会停用。

理想情况下,当我离开某个部分时,该部分应该记住它的路径,我只需激活另一个部分的路由器。切换回来时,我可以重新激活路由器,完整路径出现在浏览器地址栏中,就像用户离开它一样。

反应路由器很可能不支持此用例。但如果有,我会怎么做?我真的需要多个路由器还是可以使用其他东西?

维护者回复我并澄清说这绝对已经是可能的。我将使用纯<Router>组件并传递一个自定义历史记录,该历史记录只会有条件地更新/侦听浏览器历史记录更改。

编辑:我已经成功地实现了这个,它工作得很好。不幸的是,我无法共享任何代码。

最新更新