Redux-Toolkit:如何处理具有复合键的实体?
Redux-Toolkit: how to deal with an entity with compound keys?
我正在尝试在具有复合键的实体中使用 Redux-Toolkit 的 createEntityAdapter。例如,我的领土实体有一个类型(自治市、州、生物群系等)和一个地理编码编号。 {type, geocode} 对是该实体的复合键。
我希望能够使用 selectById 和其他选择器。我的第一个想法是创建一个连接类型“;”的 id 字段和地理编码,但我相信还有更好的方法。
import { createEntityAdapter } from '@reduxjs/toolkit'
const adapter = createEntityAdapter({
// selectId: (item) => ???,
})
const APIresponse = {
data: [
{ type: 'state', geocode: 1, value: 123},
{ type: 'state', geocode: 2, value: 66},
{ type: 'municipality', geocode: 1, value: 77},
{ type: 'municipality', geocode: 2, value: 88},
{ type: 'municipality', geocode: 3, value: 99}
]
}
我是 Redux 维护者,也是 createEntityAdapter
RTK 的实现者。
createEntityAdapter
确实假设您的数据中有某种唯一 ID 字段。如果您没有原始数据的唯一 ID 字段,我可以想到三个选项:
- 在处理 API 响应时(但在调度任何 "loaded" 操作之前)为每个项目生成唯一 ID
- 在处理 API 响应
时,将一些字段组合在一起以创建合成的 id
字段
- 实施
selectId
,以便每次returns字段组合
我正在尝试在具有复合键的实体中使用 Redux-Toolkit 的 createEntityAdapter。例如,我的领土实体有一个类型(自治市、州、生物群系等)和一个地理编码编号。 {type, geocode} 对是该实体的复合键。
我希望能够使用 selectById 和其他选择器。我的第一个想法是创建一个连接类型“;”的 id 字段和地理编码,但我相信还有更好的方法。
import { createEntityAdapter } from '@reduxjs/toolkit'
const adapter = createEntityAdapter({
// selectId: (item) => ???,
})
const APIresponse = {
data: [
{ type: 'state', geocode: 1, value: 123},
{ type: 'state', geocode: 2, value: 66},
{ type: 'municipality', geocode: 1, value: 77},
{ type: 'municipality', geocode: 2, value: 88},
{ type: 'municipality', geocode: 3, value: 99}
]
}
我是 Redux 维护者,也是 createEntityAdapter
RTK 的实现者。
createEntityAdapter
确实假设您的数据中有某种唯一 ID 字段。如果您没有原始数据的唯一 ID 字段,我可以想到三个选项:
- 在处理 API 响应时(但在调度任何 "loaded" 操作之前)为每个项目生成唯一 ID
- 在处理 API 响应 时,将一些字段组合在一起以创建合成的
- 实施
selectId
,以便每次returns字段组合
id
字段