2

我正在尝试创建具有关系 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
  }
);
4

0 回答 0