保持侧边栏面板在重定向上展开

时间:2018-11-19 21:16:27

标签: javascript reactjs material-ui

我的sidenav中有扩展面板,我一直在跟踪它们的打开状态并进行设置。因此,当打开另一个面板时,状态会发生变化以反映打开的面板。在我的面板中,我有列出的项目,这些项目在单击时会重定向到另一条路线。我的问题是我想使重定向列表中单击列表项的面板保持打开状态。在重定向到列表项路由时,将发生刷新,并且sidenav返回其原始状态,这显然是扩展面板崩溃了。列表上有一个单击,它会做出反应重定向到路径。

3 个答案:

答案 0 :(得分:0)

在不考虑React的情况下回答您的问题:

状态更改后,将面板状态存储在.localStorage中:

localStorage.setItem('panelState',JSON.stringify(myStateObj));

.DOMContentLoaded上检索并恢复状态:

restoreState(JSON.parse(localStorage.getItem('panelState')));

如果您使用的是React,则必须问为什么不将其用作SPA,但这是我想进行的另一个问答环节

答案 1 :(得分:0)

尝试使用具有左右部分的布局。将状态保留在主要组件中,单击某些内容后,更新右侧的内容部分。那样就可以轻松完成

答案 2 :(得分:0)

如果您已经安装了最好的软件,我会说使用redux或一些状态管理库。 另一个最佳方法是在主文件(即app.js)中使用布局页面,并将路由器加载到布局主体中,然后布局状态管理将进入状态管理。