Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在redux存储和应用程序之间转换javascript对象_Javascript_Reactjs_Serialization_Redux - Fatal编程技术网

在redux存储和应用程序之间转换javascript对象

在redux存储和应用程序之间转换javascript对象,javascript,reactjs,serialization,redux,Javascript,Reactjs,Serialization,Redux,我正在处理一手从外部api库获取的javascript对象。我想使用redux将传入对象存储在react应用程序中 这些对象是es2015类,还附带两个方便的方法,分别称为fromJSON和toJSON。由于我希望我的redux存储是可序列化的(应该是这样的),我需要一种将它们转换为普通对象的方法(toJSON通过返回dict来实现这一点)。在我的应用程序中,我需要使用这些对象,因为它们来自API,因为我需要附加到它们的方法,API客户机也需要这些特定对象 这是一种常见的需求,因为我在网上找不到

我正在处理一手从外部api库获取的javascript对象。我想使用redux将传入对象存储在react应用程序中

这些对象是es2015类,还附带两个方便的方法,分别称为
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课程,我应该说我需要连载。是的,我最后走了那条路。我在我的还原程序中序列化我的对象,并使用“重新选择”将反向转换记忆到我的初始对象类型。