我正在尝试创建具有关系 id 的实体。使用关系数据检查了 normalizr 示例,但是在分页时,旧的帖子 ID 数组被替换为新的帖子 ID 数组,它们没有合并。
初始实体:
const entities = {
users: {
testUser: {
posts: ['1', '2']
}
}
};
分页后会发生什么:
const entities = {
users: {
testUser: {
posts: ['3', '4']
}
}
};
分页后我的期望:
const entities = {
users: {
testUser: {
posts: ['1', '2', '3' ,'4']
}
}
};
这是代码,我错过了什么吗?谢谢 !
const processStrategy = (value, parent, key) => {
switch (key) {
case 'author':
return { ...value, posts: [parent.id] };
default:
return { ...value };
}
};
const mergeStrategy = (entityA, entityB) => {
return {
...entityA,
...entityB,
posts: [...(entityA.posts || []), ...(entityB.posts || [])],
};
};
const user = new schema.Entity(
'users',
{},
{
idAttribute: 'username',
mergeStrategy,
processStrategy
}
);