Обработка подсостояния, недоступного (созданного компонентом в маршрутизаторе) при создании селектора

Я унаследовал реактивно-шаблонный проект. Мой опыт работы с React/REDUX ограничен, но я проделал долгий путь, просто экстраполировав код примера и то, что оставил мне предыдущий разработчик.

Однако я столкнулся с проблемой, которую считаю нужной прояснить. В частности, правильно ли то, что я делаю. Я подозреваю, что это может быть не потому, что мне приходится проверять наличие состояния в селекторе. Код запаха!

В моем App.js я ссылаюсь на следующие селекторы

const mapStateToProps = createStructuredSelector({
  app: makeSelectApp(),
  minimumSelectionMade: minimumSelectionMade()
});

Второй из которых создается в selectors.js (из App.js)

const itemsDomain = (state) => state.get('items');

const minimumSelectionMade = () => createSelector(
  itemsDomain,
  (substate) => substate !== undefined ? substate.get("minimumSelectionMade") : false
);

И я делаю это, потому что в другом месте в моем App.js я иду

<Navigator nextDisabled={!this.props.minimumSelectionMade}/>

Таким образом, линия, которая вызывает мое подозрение

(substate) => substate !== undefined ? substate.get("minimumSelectionMade") : false);

Это кажется неуклюжим и, конечно, не масштабируемым, и если я не проверю неопределенность, мое приложение даже не выйдет из первой базы, подсостояние равно нулю и

<Navigator nextDisabled={!this.props.minimumSelectionMade}/> 

создает ошибку

Я предполагаю, что это происходит, потому что в момент, когда App / selectors.js запрашивает state.get ('items'), его просто не существует.

Правильно ли я поступаю, а если нет, то каков правильный подход?

0 ответов

Другие вопросы по тегам