gpt4 book ai didi

javascript - 如何将普通 JS 对象转换为 Immutable 集合?

转载 作者:行者123 更新时间:2023-12-01 03:17:06 25 4
gpt4 key购买 nike

我在不可变集合的帮助下管理了部分状态。例如,

const FolderModel = Record({
id: null,
name: '',
items: List()
})

const DocsModel = Record({
folder1: new FolderModel({
id: 1,
name: 'Избранное'
}),
folder2: new FolderModel({
id: 2,
name: 'Отложенное'
}),
folder3: new FolderModel({
id: 3,
name: 'Топ тендеры'
})
})

const initialState = new DocsModel()

我还将状态保存在 localStorage 中,所以问题是当从 localStorage 检索状态时,我不知道如何将 JS 对象转换回嵌套对象集合(例如包含列表字段的记录)。我已经尝试使用 Immutable.fromJS() 方法,但显然它不适用于 Record 。有人遇到同样的问题吗?请帮忙解决一下

最佳答案

我已经成功使用 transit-immutable-js库。

来自docs :

“Transit 是一种序列化格式,它构建在 JSON 之上,提供更丰富的类型集。它是可扩展的,这使其成为轻松为 Immutable 类型提供序列化和反序列化功能的不错选择。”

记录的使用示例:

var FooRecord = Immutable.Record({ a: 1, b: 2, }, 'Foo'),
foo = new FooRecord(),
serialize = transit.withRecords([FooRecord]),
json = serialize.toJSON(foo);

console.log(json); //=> json string of your data

关于javascript - 如何将普通 JS 对象转换为 Immutable 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45486788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com