首页 > 解决方案 > 未记忆具有动态参数的选择器

问题描述

我试图让 Reselect 记住我用动态参数调用的选择器

我的选择器:

import { createSelector, defaultMemoize } from 'reselect'

const allStatesSelector = store => store.state.states

export const getAllStates = createSelector(
  allStatesSelector,
  states => defaultMemoize(night => {
    console.log('getAllStates called with night:', night)
    const availableStates = night ? nightStates : dayStates
    return states.filter(state => availableStates.includes(state.id))
  }),
)

我这样称呼它:

states: getAllStates(store)(props.night)

选择器被调用了 1800 次,而不仅仅是 2 次(考虑到 night 只能是真或假)。

我错过了什么?

标签: reduxreselect

解决方案


推荐阅读