在非规范化中使用仅在输入数据中提及的实体
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 反规范化的镜头
我有重新选择选择器,每次更改 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 反规范化的镜头