Я пытаюсь настроить SideEffect для своего хранилища аутентификации. каждый раз, когда я запускаю действие (TrySignIn
), я получаю следующую ошибку:
AuthEffects.authSignin отправил недопустимое действие
ОШИБКА TypeError: действия должны иметь свойство типа
Насколько я понимаю, исходя из типа ошибки, мое возвращаемое действие не имеет свойства типа, что здесь не так, я возвращаю два действия, SIGNIN
и SET_TOKEN
, и оба они имеют свойства типа.
Я ценю, если кто-нибудь скажет мне, что я здесь делаю не так,
Редактировать:
Я воспроизвел ошибку здесь, вы сможете увидеть те же ошибки, что и я, в консоли .
Я публикую соответствующий код для своей реализации,
Мои действия с аутентификацией
export class TrySignin implements Action {
readonly type = TRY_SIGNIN;
constructor(public payload: Credentials) {}
}
export class Signin implements Action {
readonly type = SIGNIN;
}
export class SetToken implements Action {
readonly type = SET_TOKEN;
constructor(public payload: string) {}
}
Мой побочный эффект,
@Injectable()
export class AuthEffects {
@Effect()
authSignin = this.actions$
.ofType(AuthActions.TRY_SIGNIN)
.map((action: AuthActions.TrySignin) => {
return action.payload;
}).switchMap(
(authData: Credentials) => {
return (this.httpService.postRequest('/Account/Login', (authData)));
})
.map(
(res) => {
console.log(res['authToken']);
return [
{
type: AuthActions.SIGNIN
},
{
type: AuthActions.SET_TOKEN,
payload: res['authToken']
}
];
}
);
И в моем компоненте я запускаю свое действие,
login() {
this.store.dispatch(new authActions.TrySignin(this.loginForm.value));
}