寓言/ F# - 如何将枚举或歧视联盟保存到浏览器?

时间:2017-01-05 14:14:55

标签: f# fable-f#

我可以使用

将字符串保存到本地浏览器存储

Browser.localStorage.setItem(key, str)

但是当我尝试对一个受歧视的联盟进行字符串化时(例如通过调用string),它就会显示为[Object object]

由于Fable不支持FSharp.Reflection和枚举操作函数,如何保存和加载DU或枚举值(不为每种情况做一堆额外的工作)?

1 个答案:

答案 0 :(得分:2)

根据Fable docs,您可以使用函数Fable.Import.JS.JSON.stringify来序列化DU,并使用Fable.Import.JS.JSON.parse对其进行反序列化。这允许它从浏览器localStorage保存和加载。

还有一个[<StringEnum>]属性,我假设将枚举视为字符串表示形式,但我没有为此用例测试它。