селектор ngrx не может возвращать подсостояния

#angular #ngrx #ngrx-store

#angular #ngrx #ngrx-хранилище

Вопрос:

Я импортировал ngrx в проект для лучшего моделирования данных. Мне только что удалось сохранить огромный объем информации в хранилище ngrx, а затем успешно извлечь ее в компоненте. Однако, когда я попытался разделить свои данные на более мелкие фрагменты с помощью селекторов, я заметил, что селекторы не могут возвращать какие-либо подсостояния начального состояния.

Мой первый селектор, который извлекает все данные, работает нормально и может возвращать массив объектов:

 export const getOperatorFactsState = createSelector(
  getOperatorFactsFeatureState,
  state => {
    return state;
  }
);
  

Мой второй селектор, который должен получать доступ к меньшему подсостоянию исходных данных, возвращает только undefined:

 export const getNetworksState = createSelector(
  getNetworksFeatureState,
  state => {
    return state.OperatorFacts.operatorFacts.networks;
  }
);
  

Я провел некоторое исследование в Интернете и не могу точно определить, почему это происходит как таковое. Почему может быть причиной этой проблемы? Я предоставлю файл action, reducer of effects, если он будет запрошен.

OperatorFacts.module (отображается как изображение, поскольку оно довольно большое):

введите описание изображения здесь

Комментарии:

1. не могли бы вы поделиться состоянием ввода машинописного текста, пожалуйста?

Ответ №1:

Глядя на ваш State selector , должно быть так

 export const getNetworksState = createSelector(
 getNetworksFeatureState,
  state => {
   return state.OperatorFacts?.networks; //no extra operatorFacts object
 }
);
  

Комментарии:

1. У меня были проблемы с тем, как я написал логику для селекторов. Но да, именно так выглядело мое состояние в конце.