#angular #ngrx
#angular #ngrx
Вопрос:
Я пытаюсь построить свой проект angular 7 с использованием aot, но aot выдает следующую ошибку
ERROR in app/app.store.ts(10,25): Error during template compile of 'AppStoreModule'
Function expressions are not supported in decorators in 'auth'
'auth' references 'auth'
'auth' contains the error at app/state/auth/auth.reducers.ts(12,41)
Consider changing the function expression into an exported function.
Я проверил редуктор ngrx для аутентификации, который будет выглядеть следующим образом
export const auth: ActionReducer<any> = (
state = initialState,
action: authActions
) => {
switch (action.type) {
case Auth.AUTH_REFRESH:
case Auth.AUTH_LOGIN:
console.log(" reducer called");
return Object.assign({}, state);
case Auth.AUTH_LOGIN_SUCCESS:
console.log("login success reducer");
let token = localStorage.getItem("token");
const decodedToken = helper.decodeToken(token);
console.log(decodedToken.sub);
return Object.assign({}, state, {
currentUser: decodedToken.sub,
loggedIn: !helper.isTokenExpired(token)
});
default:
return state;
}
};
Вот мой AppStoreModule
@NgModule({
imports: [
StoreModule.forRoot({
auth,
app,
search
}),
EffectsModule.forRoot([AuthEffects, AppEffects, SearchEffects])
]
})
Я не знаю, в чем проблема с кодом.
Ответ №1:
Это обычная проблема с компиляцией AOT, вам необходимо изменить функции с функций со стрелками на именованные функции, как указано здесь