KristinaKac / meetup_2

0 stars 0 forks source link

Лишняя функция "meetupReducer" #4

Closed annzolotareva closed 3 months ago

annzolotareva commented 3 months ago

Сделать эту константу экспортируемой, убрать функцию meetupReducer https://github.com/KristinaKac/meetup_2/blob/fb63bf38da7be6b2f7eabf86d32f81b48ab344c0/src/app/modules/meetup/store/meetup.reducer.ts#L6

Anna-Prokhorova commented 3 months ago

На самом деле нормальный паттерн экспортить функцию-обертку (например nx при генерации feature-store файл с редьюсерами сгенирит именно по такому паттерну). Выбор паттерна (экспортить саму функцию createReducer или ф-цию-обертку возвращающую результат вызова createReducer) зависит от выбранного компилятора Angular.

Проблема заключается в том, что VE не может анализировать такие ф-ции как createReducer, только с обычные ф-ции с одним оператором возврата (return), у Ivy тоже есть такая проблема если мы компилируем Ahead-Of-Time, но сейчас насколько я понимаю она осталась только в вопросе провайдеров, а тут как-то прокатывает.

Короче не супер серьезная ошибка, а скорее повод почитать больше про компиляцию Angular Подробнее про невозможность вызова функций можно почитать тут: https://angular.io/guide/aot-metadata-errors#function-calls-are-not-supported Видос про компилятор Angular: https://www.youtube.com/watch?v=anphffaCZrQ

KristinaKac commented 3 months ago

https://github.com/KristinaKac/meetup_2/commit/22f1fdf8c0050f783dc0d1bd024d3019685d2c4f