1
我使用reselect和denormalizr来避免在每次更改时反规范化,但我不确定这是否真的改善了某些事情。将denormalizr与reselect结合使用是一种好方法吗?
import { createSelector } from 'reselect'
import { denormalize } from 'denormalizr'
import { challenge as schema } from './challenge.schema'
const getState = (state) => state
export const getChallenge = createSelector(getState, ({ entities, challenge }) => {
return denormalize(entities.challenges[challenge.item], entities, schema)
})
export const getChallenges = createSelector(getState, ({ entities, challenge }) => {
return challenge.items.map((id) => denormalize(entities.challenges[id], entities, schema))
})