在redux存储和应用程序之间转换javascript对象
我正在处理一手从外部api库获取的javascript对象。我想使用redux将传入对象存储在react应用程序中 这些对象是es2015类,还附带两个方便的方法,分别称为在redux存储和应用程序之间转换javascript对象,javascript,reactjs,serialization,redux,Javascript,Reactjs,Serialization,Redux,我正在处理一手从外部api库获取的javascript对象。我想使用redux将传入对象存储在react应用程序中 这些对象是es2015类,还附带两个方便的方法,分别称为fromJSON和toJSON。由于我希望我的redux存储是可序列化的(应该是这样的),我需要一种将它们转换为普通对象的方法(toJSON通过返回dict来实现这一点)。在我的应用程序中,我需要使用这些对象,因为它们来自API,因为我需要附加到它们的方法,API客户机也需要这些特定对象 这是一种常见的需求,因为我在网上找不到
fromJSON
和toJSON
。由于我希望我的redux存储是可序列化的(应该是这样的),我需要一种将它们转换为普通对象的方法(toJSON
通过返回dict来实现这一点)。在我的应用程序中,我需要使用这些对象,因为它们来自API,因为我需要附加到它们的方法,API客户机也需要这些特定对象
这是一种常见的需求,因为我在网上找不到太多关于这方面的信息,还是我完全走错了路?我将如何实现这样的转变?我目前正在考虑将es2015类附加到我的操作中,并在我的reducer中调用toJSON
。然后,我可以创建从redux捕获json的特定选择器,并使用fromJSON
功能将它们转换回类(我是否需要将它们记忆起来?)。这些选择器可以在mapStateToProps
中使用,然后最终映射到一个道具
请告诉我您对此有何看法,以及如何/如果我可以改进此过程。Redux说状态应该是可序列化的。应该是这样的,因为在某些时候,您可能需要在本地存储状态(通过某种形式的本地存储)。但这并不意味着状态必须由普通对象组成 例如,许多项目使用Immutable.js对象作为其状态。序列化Immutable.js对象会带来开销。但是可以使用transit immutable js来完成 据我所知,这个原则与你的问题相似 我从您的问题中了解到(无论您所说的ES2015类是什么意思)可以通过fromJSON和toJSON方法进行反序列化/序列化,这就是您所需要的
因此,您可以在状态下使用“API”对象,并仅在需要本地存储时对其进行序列化。1。你所说的“es2015课程”是什么意思?这些普通对象是否序列化为JSON?2.关于
mapstatetops
,您可能需要记忆。我建议阅读es2015课程,我应该说我需要连载。是的,我最后走了那条路。我在我的还原程序中序列化我的对象,并使用“重新选择”将反向转换记忆到我的初始对象类型。