0

我在我的 Redux 存储中保留了一些对象,并且一些属性的类型为:Firestore.Timestamp.

例子:

blogPost: {
  title: string,
  createdAt: firestore.Timestamp
}

我收到了这些警告:

在状态中检测到不可序列化的值,在路径中:BLOGPOST.blogPost.createdAt。值:t {秒:1583488258,纳秒:805000000}

查看处理此操作类型的化简器:BLOGPOST/LOAD_BLOGPOST_SUCCESS。(参见https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state

来自:https ://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state

强烈建议您只将普通的可序列化对象、数组和原语放入您的存储中。在技​​术上可以将不可序列化的项目插入到 store 中,但这样做会破坏持久化和重新水化 store 内容的能力,并干扰时间旅行调试。

如果您对持久性和时间旅行调试等可能无法按预期工作的事情感到满意,那么完全欢迎您将不可序列化的项目放入您的 Redux 存储中。最终,它是您的应用程序,您如何实现它取决于您。与有关 Redux 的许多其他事情一样,请确保您了解所涉及的权衡。

我绝对希望坚持和时间旅行保持良好的工作状态。firestore.Timestamp在将其发送到 Redux 之前,我是否应该费心将其转换为 JS Dates ?或者我可以放心地忽略这一点吗?

4

1 回答 1

1

根据该描述,我们特别建议您将它们转换为原始值,例如时间戳字符串或数字。

于 2020-09-29T14:24:48.690 回答