Последовательность двух действий вместе, используя эпос в наблюдаемом редуксе

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

Я получаю ошибку:

You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.

Вот код, который я использую:

import { Observable } from 'rx';

export const startApplicationEpic = (action$: Observable) =>
  action$
    .ofType('START_APPLICATION')
    .flatMap(() =>
      Observable.of(
        { type: 'REGISTER_PUSH_NOTIFICATIONS'},
        { type: 'AUTHENTICATION_REQUEST' }
      )
    );
    
// index.js

store.dispatch({ type: 'START_APPLICATION' })

Для меня код RxJS, который я использую, действителен, и если эпопея - это поток, то это должно сработать, или возможно ли отправить только одно действие из эпопеи?

1 ответ

Решение

Похоже, вы импортируете rx (то есть v4) вместо rxjs (то есть v5). Итак, ваш код предоставляет v4 Observable для flatMap Наблюдаемого v5 (внутренне наблюдаемые редукторы по умолчанию дают v5). Две версии не могут взаимодействовать по умолчанию, но существуют временные уровни взаимодействия. Я признаю, что все это довольно запутанно.

Лучший способ использовать v4 с redux-observable - это включить адаптер, который мы создали для него https://github.com/redux-observable/redux-observable-adapter-rxjs-v4. Если вы используете v4 случайно или в противном случае ничего не изменится, обязательно используйте v5.

После того, как вы это исправите, приведенный код работает без ошибок: https://jsbin.com/xiqigi/edit?js,console

Другие вопросы по тегам