在非规范化中使用仅在输入数据中提及的实体

Use entities only mentioned in input data in denormalize

我有重新选择选择器,每次更改 redux 存储中的任何集合时都会重新呈现,但我希望它仅在输入数据中引用的 id 更改时更改。当前的 denormalize 功能是否可行?

密码是:

// TODO: fix rerenders
const mediaSelector = createSelector(
  ({ media }) => media.byId,
  ({ documents }) => documents.byId,
  ({ photos }) => photos.byId,
  ({ photoSizes }) => photoSizes.byId,
  ({ files }) => files.locations.byId,
  (_, { media }) => media,
  (media, documents, photos, photoSizes, fileLocations, data) => {
    console.count('Connected Media');
    return denormalize(data, schema, {
      media,
      documents,
      photos,
      photoSizes,
      fileLocations,
    });
  },
);
const mapState = createStructuredSelector({
   media: mediaSelector,
});
const enhance = connect(mapState);

好的,我用我的 npm 包解决了它 normalizr-entities

这就像 normalizr 反规范化的镜头