Допустим, у меня есть следующий код и, скажем, 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?