在我的 React/Redux 应用程序中,我经常面临使用状态实现组件的问题,这些状态应该在整个应用程序中使用。让我们以简单的弹出组件为例,它具有可以在任何页面中重用的打开/关闭状态。这是我发现的两种可能的方法:
使用
setState
和“本地”reducer(我使用recompose.withReducer,它只是 React 的 native 的语法糖setState
)来管理它的状态。在您需要更改页面其他部分中的组件状态之前,它看起来很容易且可重用(关闭弹出窗口以防万一)。而且你不能只调用一些 redux 操作来改变状态。将组件的状态保存在 Redux 存储中。使用这种方法,我们可以
closePopupAction({ id })
在组件树的任何位置调用以更改它的状态。`但是我们需要以某种方式将它的减速器(我想保留在弹出的文件夹中)放在根减速器中,当组件被挂载并删除它时组件已卸载。另外,我们可以在页面中有多个弹出窗口,每个弹出窗口都有自己的状态。
有没有人遇到过类似的问题?