【发布时间】:2021-08-18 04:13:07
【问题描述】:
使用 redux 并尝试将地图存储到其中时,会出现错误:
在状态中检测到不可序列化的值
这是为什么呢?我知道医生说你不能,但它没有解释为什么。因为你不能直接 JSON.stringify 一个地图?但是你可以做这样的事情......
m = new Map()
m.set("1", "2")
JSON.stringify([...m]);
【问题讨论】:
-
"因为您不能直接 JSON.stringify 地图?" 正确。 “但是你可以做这样的事情......”你只是在展示你如何不是序列化一个映射,而是一个键值对数组。跨度>
-
“为什么项目 X 做出决定 Y”问题通常不适合 Stack Overflow。
-
@T.J.Crowder 我们实际上有一个问答Why redux store should be serializable? - 答案只是文档中的引用。这个问题是在问为什么地图不可序列化并且......老实说,我不能比“因为它不是”更有意义地回答它。这也已包含在问题中。
-
任何附加了方法的对象都是不可序列化的。当然,任何对象都可以实现自己的系统来与 JSON 进行转换,但 Redux 不会意识到这种转换。
标签: javascript reactjs redux