我将reselect与denormalizr一起使用,以避免对每次更改进行非规范化,但我真的不知道这是否真的在改进某些东西。
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))
})