我从API获得了一个扁平结构:
{
"users": [
{"id": 123, "name": "Peter"},
{"id": 124, "name": "John"}
],
"threads": [
{"id": 1, "participantIds": [123, 124, 125]},
{"id": 2, "participantIds": [879, 888]}
]
}
其中participantIds
指用户"实体"。
我想将数据存储在Redux中,即一个不可变的平面结构。为了方便起见,我创建了Record实体,我希望在我的React组件中将其作为输入(props)接收:
export class User extends Immutable.Record({})
{
id: string;
name: string;
}
export class Thread extends Immutable.Record({})
{
id: string;
paticipants: Immutable.Map<string, User>;
}
由于Redux的扁平结构不同,我不确定,如何正确构建这种架构。以下是我可能做过的一些总结:
我不喜欢这两种可能的解决方案。对于这种通常和简单的用例,所有这些似乎都非常冗长。
我在这里找到了一些讨论:https://github.com/rackt/redux/issues/815但我没有得到我需要的回答。