Каков правильный образец для Неизменного и Повторного выбора? - PullRequest
2 голосов
/ 15 октября 2019

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

...