Redux状态和动量JS
我在redux州有几次约会 在我的应用程序中,我只想操纵对象 为了实现这一点,我添加了一个函数,它接受我的AJAX查询,并记录我的所有日期 但是当我检查商店里的东西时,我仍然有一个字符串(Redux状态和动量JS,redux,react-redux,momentjs,Redux,React Redux,Momentjs,我在redux州有几次约会 在我的应用程序中,我只想操纵对象 为了实现这一点,我添加了一个函数,它接受我的AJAX查询,并记录我的所有日期 但是当我检查商店里的东西时,我仍然有一个字符串(“2018-07-10T08:31:09.877Z”),它似乎是我的力矩对象的JSON.stringify版本 我该怎么处理这件事?我知道我可以在存储中使用侦听器,但是,在将状态反序列化到对象中时,这不会添加处理 我感到惊讶的是,我没有在网上找到任何东西,此外,这是更具体的,因为它涉及持久化商店 CheersR
“2018-07-10T08:31:09.877Z”
),它似乎是我的力矩对象的JSON.stringify
版本
我该怎么处理这件事?我知道我可以在存储中使用侦听器
,但是,在将状态反序列化到对象中时,这不会添加处理
我感到惊讶的是,我没有在网上找到任何东西,此外,这是更具体的,因为它涉及持久化商店
CheersRedux文档强烈建议只在存储中放置普通的可序列化对象 正因为如此,我正在接近与您相同的情况,即具有选择器层,在该层中,我以适当的格式获取所需的存储数据,然后在组件中使用格式化(计算)数据 下面是我可以向您推荐的流程:
对于未来的读者来说,我最终完全改变了主意:使用选择器是可行的,但我也有来自存储区其他部分表单输入的数据,而这些数据在处理
重新选择时没有意义
因此,我决定以ISO字符串格式存储日期(“2018-07-10T08:31:09.877Z”
),并尽可能晚地对日期进行调整(例如
)
这是不太优雅,可能有点不太性能,但我有更多的控制
如果有人提出更好的解决方案,我很乐意阅读 是的,我也提出了重新选择的解决方案。我想那时没有太多的选择。但我仍然不清楚redux是否会一言不发地对存储进行序列化。如果是这样的话,访问一些反序列化的函数也是有意义的,不是吗?我的意思是,我如何确保首先序列化对象?首先,由于性能原因,redux
库本身不会自动序列化对象的。这是你自己的事。根据您的用例,我猜您正在使用一个库或中间件来为您完成这项工作。例如,redux persist
library执行自动序列化-当状态对象被持久化时,它首先使用JSON.stringify()进行序列化。实际上,最好是序列化存储上的矩对象。我只是在服务器端渲染(SSR)使用Next.js时遇到了水化存储的问题,因为我没有序列化我的矩对象。。。