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



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

这些对象是es2015类,还附带了两个方便的方法fromJSONtoJSON。由于我希望我的redux存储是可串行化的(应该是这样),我需要一种方法将它们转换为普通对象(toJSON通过给我一个dict来实现这一点)。在我的应用程序中,我需要使用这些对象,因为它们来自API,因为我需要附加到它们的方法,而API-client也需要这些特定的对象。

这是一种常见的需求,因为我在网上找不到太多关于它的信息,还是我完全走错了路?我将如何实现这样的转变?我目前正在考虑将es2015类附加到我的操作中,并在减速器中调用toJSON。然后,我可以创建特定的选择器,从redux中捕获json,并使用fromJSON功能将它们转换回类(我是否必须将它们存储起来?)。然后,这些选择器可以在mapStateToProps中用于映射,然后最终映射到道具。

让我知道你对此有何看法,以及我如何/是否可以改进这个过程。

Redux表示状态应该是可序列化的。应该是这样,因为在某个时刻,您可能需要在本地存储状态(通过某种形式的本地存储)。但这并不意味着国家必须由简单的物体组成。

例如,许多项目都使用Immutable.js对象作为状态。序列化Immutable.js对象存在开销。但它可以使用transit不可变的js来完成。

据我所知,这位校长与你的问题相似。

我从你的问题中了解到,(无论你所说的ES2015类是什么意思)通过fromJSON和toJSON方法是可反序列化/可序列化的,这就是你所需要的。

因此,您可以在状态中使用"API"对象,并仅在需要本地存储时对其进行序列化。

最新更新