我正在为我的应用程序创建一个通用的模态React组件来显示各种不同的东西。我希望它足够灵活,以显示纯HTML和交互式React组件。
我通过将可显示组件存储在我的Redux模态减速器中来实现它。到目前为止,我没有遇到任何问题。
以前有人采取过这种做法吗?我无法在网上找到任何这个例子,所以我不确定这是不好的做法。如果是这样,你有没有其他方式建议应该处理这个问题?
答案 0 :(得分:2)
它可能有用,但我认为你真的不需要这样做。您不应该将整个组件保存在商店中。仅保存应该可序列化的纯状态,并将它们作为道具传递给组件。组件的render()
功能将负责渲染。
参见redux的faq:
我可以在商店状态中添加功能,承诺或其他不可序列化的商品吗?
强烈建议您只将普通的可序列化对象,数组和基元放入商店。从技术上讲,可以将不可序列化的项目插入到商店中,但这样做会破坏保存和补充商店内容的能力,并且会干扰时间旅行调试。
如果您对持久性和时间旅行调试可能无法正常工作等问题感到满意,那么我们非常欢迎您将不可序列化的项目放入Redux商店。最终,它是您的应用程序,您如何实现它取决于您。与Redux的许多其他事情一样,请确保您了解所涉及的权衡。
您也可以阅读此主题的讨论:https://github.com/reactjs/redux/issues/1793