Fable/F# - 如何将枚举或可区分联合保存到浏览器?
Fable/F# - How do I save enums or discriminated unions to the browser?
我可以使用
将字符串保存到本地浏览器存储
Browser.localStorage.setItem(key, str)
但是当我尝试对一个受歧视的联合进行字符串化时(例如,通过对其调用 string
),结果显示为 [Object object]
.
由于 Fable 不支持 FSharp.Reflection
和枚举操作函数,我如何保存和加载 DU 或枚举值(无需为每种情况做大量额外工作)?
根据 Fable docs,您可以使用函数 Fable.Import.JS.JSON.stringify
序列化 DU,并使用 Fable.Import.JS.JSON.parse
反序列化它。这允许它从浏览器 localStorage 保存和加载。
还有一个 [<StringEnum>]
属性,我假设它使枚举被视为它们的字符串表示形式,但我没有针对此用例对其进行测试。
我可以使用
将字符串保存到本地浏览器存储Browser.localStorage.setItem(key, str)
但是当我尝试对一个受歧视的联合进行字符串化时(例如,通过对其调用 string
),结果显示为 [Object object]
.
由于 Fable 不支持 FSharp.Reflection
和枚举操作函数,我如何保存和加载 DU 或枚举值(无需为每种情况做大量额外工作)?
根据 Fable docs,您可以使用函数 Fable.Import.JS.JSON.stringify
序列化 DU,并使用 Fable.Import.JS.JSON.parse
反序列化它。这允许它从浏览器 localStorage 保存和加载。
还有一个 [<StringEnum>]
属性,我假设它使枚举被视为它们的字符串表示形式,但我没有针对此用例对其进行测试。