将React组件存储在Redux减速器中?

时间:2017-02-09 04:56:25

标签: reactjs modal-dialog redux react-redux

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

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

以前有人采取过这种做法吗?我无法在网上找到任何这个例子,所以我不确定这是不好的做法。如果是这样,你有没有其他方式建议应该处理这个问题?

1 个答案:

答案 0 :(得分:2)

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

参见redux的faq:

  

我可以在商店状态中添加功能,承诺或其他不可序列化的商品吗?

     

强烈建议您只将普通的可序列化对象,数组和基元放入商店。从技术上讲,可以将不可序列化的项目插入到商店中,但这样做会破坏保存和补充商店内容的能力,并且会干扰时间旅行调试。

     

如果您对持久性和时间旅行调试可能无法正常工作等问题感到满意,那么我们非常欢迎您将不可序列化的项目放入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