在normalizr中,可以通过使用schema来定义数据的结构和关系。要将'entities'的子对象上移到顶层,并重命名'results'对象,可以按照以下步骤进行操作:
normalize
函数将数据规范化为这个schema定义的结构。import { normalize, schema } from 'normalizr';
const data = {
results: [1, 2, 3],
entities: {
users: {
1: { id: 1, name: 'John' },
2: { id: 2, name: 'Jane' },
3: { id: 3, name: 'Bob' },
},
},
};
const userSchema = new schema.Entity('users');
const dataSchema = new schema.Object({
results: new schema.Array(userSchema),
});
const normalizedData = normalize(data, dataSchema);
const dataSchema = new schema.Object({
newResults: new schema.Array(userSchema, (input, parent, key) => {
return input.entities.users[input.results[key]];
}),
});
normalize
函数将数据规范化为新的schema定义的结构。const normalizedData = normalize(data, dataSchema);
这样,'entities'的子对象将被上移到顶层,并且'results'字段会被重命名为'newResults'。在规范化后的数据中,可以通过normalizedData.entities.users
来访问用户对象,通过normalizedData.result
来访问'results'字段的值。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅为示例,具体产品和服务选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云