When using rxjs 6.3.3 and recompose componentFromStreamWithConfig
, I hit the error: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
I've tried providing a custom rxjsConfig
object to componentFromStreamWithConfig
as suggested in other questions relating to recompose and 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);
The exported componentFromStream
is used in a typical way in various components.
I would expect this to work given the rxjs 6 configuration - however the fromESObservable
seems to be a problem (stacktrace points to Object.from [as fromESObservable]
)
The underlying problem seems to be:
recompose
polyfills Symbol.observable
by means of symbol-observable
.rxjs
will recognize the object received from componentFromStream
as an Observable
, otherwise it throws the TypeError.My workaround was to import recompose
before anything of rxjs
and the error disappeared.
Obviously the order of imports has relevance here, this has truly the potential to drive people mad!
In your case it would be sufficient to change the code that uses your custom componentFromStream
:
componentFromStream
before any imports of rxjs
, Symbol.observable
explicitly by importing symbol-observable
, but again on top of all rxjs
-imports.