Fable/F# - 如何将枚举或可区分联合保存到浏览器?

Ove*_*urg 9 f# fable-f#

我可以将字符串保存到本地浏览器存储中

Browser.localStorage.setItem(key, str)

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

由于FSharp.ReflectionFable 中不支持 和 枚举操作函数,我如何保存和加载 DU 或枚举值(无需为每种情况做大量额外工作)?

Ove*_*urg 8

根据Fable 文档,您可以使用该函数Fable.Import.JS.JSON.stringify序列化 DU 并Fable.Import.JS.JSON.parse反序列化它。这允许它从浏览器本地存储保存和加载。

还有一个[<StringEnum>]属性,我认为它使枚举被视为它们的字符串表示形式,但我没有针对这个用例测试它。