将两个动作按顺序排列在一起,使用可观察到的冗余史诗



我正在使用redux observable构建一个具有react native的应用程序。现在,我正努力在使用史诗可观察到的redux中的两个动作上做一个简单的装饰。我试图实现的只是将两个行动映射为一个行动。

我得到的错误是:

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代码是有效的,如果史诗是一个流,那么这应该是有效的吗?还是只能从史诗中调度一个动作?

您似乎正在导入rx(即v4(而不是rxjs(即v5(。因此,您的代码为v5Observable的flatMap提供了一个v4Observable(redux-Observable内部默认为v5(。默认情况下,这两个版本不能进行互操作,但存在临时互操作层。我承认这一切都很令人困惑。

将v4与redux-observable一起使用的最佳方式是包含我们为其创建的redux-observable-adapter-rxjs-v4适配器。如果你在意外中使用v4,或者它没有什么不同,那么一定要使用v5。

一旦修复了该问题,所提供的代码将按预期工作,不会出现错误:https://jsbin.com/xiqigi/edit?js,控制台

最新更新