如何在React.js中使用多个模式,窗口,面板?

时间:2018-12-20 20:10:26

标签: javascript reactjs redux

想象一下,我们有一个包含多个页面的应用程序:

主页,博客文章供稿,用户个人资料,设置

所有页面均以全角显示,它们是通用页面。

同时,模态/窗口中需要显示某些内容:

用户喜欢的帖子,“身份验证”面板,聊天,用户的关注者

我们需要使从任何页面打开任何这些面板成为可能。例如,当我们打开包含收藏夹帖子的面板,然后立即打开聊天时,聊天面板应该比收藏夹帖子面板的 z-index 多,而 z-index 结果“喜欢的帖子”面板应该重叠。

但是,当我们关闭聊天面板时,我们应该会看到“收藏夹帖子”面板。

相同的过程应与所有其他面板/窗口以及任何顺序的重叠有关!

实现此目标的最佳解决方案是什么?

当前,我有一个名为LayerManager的组件,该组件直接在我的App组件内部呈现。 LayerManager负责呈现所有绝对/固定位置的元素。 redux状态的一部分保留着有关当前打开的所有面板的信息(包含诸如“ show”,“ zIndex”之类的信息的对象数组)。当我们“推动”(打开)新面板时,将派出负责找出最大zIndex的动作,然后将增量的zIndex附加到新面板上。

0 个答案:

没有答案