假设我有以下代码,并且假设state
来自Redux,并且由于某种原因state
尚不是Immutable.js对象。问题只是层出不穷,变得如此冗长。
export const helloWorldSelector = createSelector(
initialState,
state => state.get('greetings') // yields .get is an undefined function
);
export const japaneseGreetSelector = createSelector(
helloWorldSelector,
state => state.get('ja')
);
export const englishGreetSelector = createSelector(
helloWorldSelector,
state => state.get('en')
);
我可以像这样进行回退,但这仍然会给依赖于此选择器的后续选择器带来问题。
export const helloWorldSelector = createSelector(
initialState,
state => state && state.get('greetings')
);
现在,如果我有更长的链,那么我将必须执行以下操作:
export const helloWorldSelector = createSelector(
initialState,
state => state && state.get('greetings', new Map())
);
这是如此潮湿和乏味,以至于我开始怀疑这种模式。我一定做错了什么,将Immutable.js与Reselect一起使用的正确方法/最佳实践是什么?