使用rxjs6并重组compositionFromStreamWithConfig时,“您提供了一个无效的对象,该对象应在预期的流中”

时间:2018-12-21 02:59:58

标签: reactjs rxjs rxjs6 recompose

使用rxjs 6.3.3并重新组成componentFromStreamWithConfig时,出现错误:You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.

我曾尝试向rxjsConfig提供自定义componentFromStreamWithConfig对象,如其他与recompose和rxjs 6有关的问题所建议的那样。

import "symbol-observable";
import {
  componentFromStreamWithConfig,
  createEventHandlerWithConfig
} from "recompose";
import { from } from "rxjs";

const rxjsConfig = {
  fromESObservable: from,
  toESObservable: stream => stream
};

export const createEventHandler = createEventHandlerWithConfig(rxjsConfig);
export const componentFromStream = componentFromStreamWithConfig(rxjsConfig);

导出的componentFromStream通常用于各种组件。

在rxjs 6配置的情况下,我希望这可以工作-但是fromESObservable似乎是个问题(stacktrace指向Object.from [as fromESObservable]

1 个答案:

答案 0 :(得分:1)

潜在的问题似乎是:

  1. recompose通过Symbol.observable填充symbol-observable
  2. 仅当存在该polyfill时,rxjs才会将从componentFromStream接收到的对象识别为Observable,否则会引发TypeError。

我的解决方法是在recompose中的任何内容之前导入rxjs,错误消失了。 显然,进口订单在这里具有相关性,这确实具有驱使人们疯狂的潜力!

对于您而言,更改使用自定义componentFromStream 的代码就足够了:

  • 在导入componentFromStream之前先导入自定义rxjs
  • 或通过导入Symbol.observable显式地填充symbol-observable,但还是在所有rxjs导入的顶部。