"You provided an invalid object where a stream was expected" 当使用 rxjs6 和 recompose 的组件 FromStream WithConfig
"You provided an invalid object where a stream was expected" when using rxjs6 and recompose's componentFromStreamWithConfig
当使用 rxjs 6.3.3 并重构 componentFromStreamWithConfig
时,我遇到了错误:You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
我已经尝试按照与 recompose 和 rxjs 6 有关的其他问题中的建议向 componentFromStreamWithConfig
提供自定义 rxjsConfig
对象。
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
似乎是个问题(堆栈跟踪指向 Object.from [as fromESObservable]
)
潜在的问题似乎是:
recompose
polyfills Symbol.observable
通过 symbol-observable
.
- 仅当此 polyfill 存在时,
rxjs
将从 componentFromStream
接收到的对象识别为 Observable
,否则会抛出 TypeError。
我的解决方法是在 rxjs
的任何内容之前导入 recompose
,错误消失了。
显然导入的顺序在这里有关联,这真的有可能让人发疯!
在您的情况下,更改使用您的自定义 componentFromStream
:
的代码 就足够了
- 在
rxjs
、 的任何导入之前导入您的自定义 componentFromStream
- 或通过导入
symbol-observable
显式填充 Symbol.observable
,但又在所有 rxjs
导入之上。
当使用 rxjs 6.3.3 并重构 componentFromStreamWithConfig
时,我遇到了错误:You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
我已经尝试按照与 recompose 和 rxjs 6 有关的其他问题中的建议向 componentFromStreamWithConfig
提供自定义 rxjsConfig
对象。
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
似乎是个问题(堆栈跟踪指向 Object.from [as fromESObservable]
)
潜在的问题似乎是:
recompose
polyfillsSymbol.observable
通过symbol-observable
.- 仅当此 polyfill 存在时,
rxjs
将从componentFromStream
接收到的对象识别为Observable
,否则会抛出 TypeError。
我的解决方法是在 rxjs
的任何内容之前导入 recompose
,错误消失了。
显然导入的顺序在这里有关联,这真的有可能让人发疯!
在您的情况下,更改使用您的自定义 componentFromStream
:
- 在
rxjs
、 的任何导入之前导入您的自定义 - 或通过导入
symbol-observable
显式填充Symbol.observable
,但又在所有rxjs
导入之上。
componentFromStream