Эффект отправил недопустимое действие: - PullRequest
0 голосов
/ 01 февраля 2019

Я использую Angular 7.1.4

Мой эффект:

@Injectable()
export class LoginEffects {
  constructor(private actions$: Actions, private authService: AuthenticationService) {
  }

  @Effect({dispatch: true})
  loginRequest$: Observable<any> = this.actions$.pipe(
    ofType(LoginActionsType.LOGIN_REQUEST),
    exhaustMap(payload => { // it might be switchMap, the error is the same.
      console.log(payload);
      return this.authService.login(payload.user, payload.password) // TypeScript Errors: Property 'user' does not exist on type 'never'. ; TS2339: Property 'password' does not exist on type 'never'.
        .pipe(
          map(user => new LoginSuccessAction(user)),
          catchError( err => of(new LogOutAction(err)))
        );
    })
  );
}

И я получаю эту ошибку: Ошибка ОШИБКИ: Эффект «LoginEffects.loginRequest $» отправил недопустимое действие: ...

enter image description here

Если я добавлю {dispatch: false} в декоратор @Effect, ошибка исчезнет.

Также я получу ошибки машинописного текста при попытке доступа к свойствам полезной нагрузки.

1 Ответ

0 голосов
/ 01 февраля 2019

Все действия должны иметь свойство type для их идентификации.Глядя на журнал ошибок, ваше действие содержит только полезную нагрузку.Убедитесь, что LoginSuccessAction и LogOutAction имеют свойство readonly type.Пример:

class LoginSuccessAction extends Action {
  readonly type = "LOGIN_SUCCESS";
}
...