我想在redux商店中存储东西,并想知道哪一个是可序列化的,哪一个不是。
具体来说,#1,#2是否可序列化?
什么是可串行化的测试/定义?
JSON.stringify()是否正常工作?
https://github.com/markerikson/redux/blob/create-faq-page/docs/FAQ.md
我可以在商店状态中添加功能,承诺或其他不可序列化的商品吗?
强烈建议您只将普通的可序列化对象,数组和基元放入商店。从技术上讲,可以将不可序列化的项目插入到商店中,但这样做会破坏保存和补充商店内容的能力。
答案 0 :(得分:1)
没有。如果要检查某些内容是否可序列化,请检查object == JSON.parse(JSON.stringify(object));
以下是我在浏览器窗口中运行的一些示例:
3 == JSON.parse(JSON.stringify(3))
true
"foo" == JSON.parse(JSON.stringify("foo"))
true
class MyClass {}
undefined
MyClass == JSON.parse(JSON.stringify(MyClass))
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data [Learn More]
并且在这种情况下,它表示根本不能对类进行序列化,因为JavaScript刚刚返回未定义。
答案 1 :(得分:0)
方法和函数(以及任何可执行代码段)无法序列化,因为您无法使用eval
将它们重新补水。