NgRx выполняет действия по отправке и выполняет одно (?) - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь отправить два действия в одном эффекте. Один предназначен для аутентификации пользователя (что-то вроде isAuthenticated = true), а другой - для настройки пользователя (в будущем пользовательские данные будут, вероятно, возвращены из ответа покоя), поэтому у меня есть два отдельных хранилища: одно для пользователя, другое для аутентификации. Все хорошо, потому что действия решают проблему, они отправляются снова и снова, что является обычным поведением, но через некоторое время из-за сбоя приложения действия SET_USER. Есть ли способ принять значение учетных данных пользователя только один раз и оставить обычное поведение для проверки подлинности? Вот фрагмент кода:

@Effect()
authSignin = this.actions$
    .pipe(
        ofType(AuthActions.TRY_SIGNIN),
        map((action: AuthActions.TrySignin) => {
            console.log('AuthEffects -> authSignin');
            return action.payload;
        }),
        switchMap((data: any) => {
            this.router.navigate(['/student']);
            const user: User = {
                id: '1',
                firstName: 'John',
                lastName: 'Doe',
                pesel: '19827364',
                dateOfBirth: new Date(),
                address: 'Canada, where clone syrup is made',
                phoneNumber: '14 2345 345'
            }
            return [
                { type: AuthActions.TRY_SIGNIN },
                { type: UserActions.SET_USER, payload: user }
            ]
        })
    )

Итак, вопрос еще раз: Есть ли способ принять значение учетных данных пользователя только один раз и оставить обычное поведение для проверки подлинности?

Любой намек был бы очень полезен. Спасибо.

1 Ответ

0 голосов
/ 31 января 2019

Я думаю, что в вашем случае это всегда будет в цикле эффектов, что приведет к краху вашего браузера.Есть ли какая-либо причина для вас отправлять AuthActions.TRY_SIGNIN внутри эффекта, который также прослушивает AuthActions.TRY_SIGNIN?

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