Ошибка чтения свойства в приложении Angular ngrx - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь создать свое первое приложение angular / rxjs и не могу понять, почему я получаю эту ошибку:

TypeError: Cannot read property 'students' of undefined

Я пытался следовать учебнику, но я не копировал его слово за словом. Я совершенно новичок в этом.

https://dpaste.de/F415#L1,30,98,131

1 Ответ

0 голосов
/ 06 июля 2018

в вашей функции инициализации у вас есть следующее:

this.students$ = this.store.select(fromStore.getAllStudents);

Теперь этот getAllStudents заявляет следующее:

export const getAllStudents = createSelector(getStudentState, fromStudents.getStudents);

, что означает, что мы собираемся сначала получить что-то из getStudentState,передайте его из fromStudents.getStudents и верните возвращаемое значение.Давайте посмотрим, что делает функция getStudendState:

export const getStudentState = createSelector(getState, (state: StudentsState) => state.students);

хорошо, снова мы берем состояние из функции getState и возвращаем свойство студентов, давайте проанализируем это getState:

export const getState = createFeatureSelector<StudentsState>('student-list');

Все естьТеперь ясно, что мы получаем свойство списка студентов и можем вернуться к нашей цепочке ... если только ...

export interface StudentsState {
  students: fromStudents.StudentState;
}

, как и ожидалось, когда мы получим список студентов свойство из нашего состояния, оно возвращает неопределенное, поскольку не существует, и в этот момент getState попытается получить доступ к state.students , что приведет к получаемой вами ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...