在Redux Reducer中存储React组件?

问题描述:

我正在为我的应用程序创建一个通用模态React组件,以显示各种不同的东西。我希望它足够灵活以显示纯HTML和交互式React组件。在Redux Reducer中存储React组件?

我已经通过将可显示组件存储在我的Redux模式缩减器中来实现它。到目前为止,我没有遇到任何问题。

以前有没有人采取过这种方法?我一直无法找到这个在线的任何例子,所以我不确定这是否是不好的做法。如果是这样,是否有另一种方式表明你应该处理这个问题?

它可能工作,但我不认为你真的需要这样做。您不应该将整个组件保存在商店中。只保存状态,它应该是可序列化的,并将它们作为道具传递给组件。组件的render()函数将负责渲染。

见终极版的常见问题解答:

我可以把功能,承诺或其他非序列在我的商店状态的项目?

强烈建议您只将普通的可序列化的对象,数组和基元放入商店。将不可序列化的商品插入商店在技术上是可行的,但这样做可能会打破商店内容的坚持和补水的能力,并干扰时间旅行调试。

如果你对持久性和时间旅行调试等事情没有问题,可能无法按预期工作,那么非常欢迎您将不可序列化的项目放入Redux商店。最终,这是您的应用程序,您如何实施它取决于您。与Redux的许多其他内容一样,只要确保您了解涉及的权衡。你

http://redux.js.org/docs/faq/OrganizingState.html#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state

也可以读取该线程的讨论:https://github.com/reactjs/redux/issues/1793

+0

谢谢你的见解。我觉得必须有一个更好,更“减量化”的处理方式。根据讨论主题,在商店中存储静态ID,然后创建通用组件映射器是更好的方法。 –