首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >剩余状态和动量

剩余状态和动量
EN

Stack Overflow用户
提问于 2018-07-20 10:41:31
回答 2查看 3.1K关注 0票数 3

我有好几次约会在我的约会状态。

在我的应用程序中,我只想操作力矩对象。

为了实现这一点,我添加了一个函数,它接受我的AJAX查询,并将我所有的日期都记录下来。

但是,当我检查我在商店得到了什么,我仍然有一个字符串("2018-07-10T08:31:09.877Z"),它似乎是我的矩对象的JSON.stringify版本。

我该怎么处理这事?我知道我可以在存储中使用listeners,但是,当将状态反序列化为对象时,这不会添加处理。

我感到惊讶的是,除了本期之外,我还没有在网络上找到任何东西,因为它涉及的是持久化商店,所以更加具体。

干杯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-20 13:02:26

Redux文档强烈建议只在Store中放置普通的可序列化对象。

正因为如此,我正在接近与您的选择层相同的情况,在其中,我以正确的格式获取所需的Store数据,然后在组件中使用格式化(计算)数据。

下面是我可以推荐你的流程:

  1. 将商店的日期保存在UNIX时间戳中。
  2. 有一个Selector层,在这里您将访问Store并将UNIX时间戳转换为矩对象。你可以和重选库一起玩。
  3. 在组件中,您将获得Store的对象,即调用选择器。

我是否可以将功能、承诺或其他不可序列化的项目放在我的存储状态中?

强烈建议您只将简单可序列化的对象、数组和原语放入存储中。从技术上讲,可以在存储中插入不可序列化的项,但这样做会破坏存储内容的持久化和再水合物的能力,并干扰时间迁移调试。 如果您对持久性和时间旅行调试等可能无法按预期工作的事情感到满意,那么我们完全欢迎您将不可序列化的项放入Redux存储中。最终,这是您的应用程序,以及如何实现它取决于您。与关于Redux的许多其他事情一样,只需确保您了解所涉及的权衡。

票数 2
EN

Stack Overflow用户

发布于 2018-07-20 16:53:32

对于未来的读者来说,我最终完全改变了自己的想法:使用选择器工作,但我也有来自商店其他部分的表单输入的数据,这些数据在reselect中无法处理。

因此,我决定以ISO字符串格式("2018-07-10T08:31:09.877Z")存储日期,并尽可能晚地对其进行moment化(例如。<DatePicker type='date' value={moment(this.props.value)} />)。

这不太优雅,可能有点不太好表演,但我有更多的控制力。

如果有人想出了更好的解决方案,我会很乐意阅读的!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51440748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档