私はreactアプリケーションとwebpackを束縛するためにredux-observableを使用しています。私はreactとwebpackで動作しない単一のrxjs演算子をインポートする
import 'rxjs/add/operator/mapTo';
ようrxjsから特定のオペレータを含む場合
それは動作し、エラー
TypeError: action$.ofType(...).mapTo is not a function.
をスローしかし、私は完全なrxjsライブラリが含まれている場合、それは
import 'rxjs';
の作品はありません
特定の演算子をインポートするとき、jsバンドルにmapToコードが含まれていますが、メソッドはnoですObservableプロトタイプに含まれるようになりました。私はバンドルのためにwebpackを使用しています。 webpackの特定の演算子をインポートするために特別な処理を行う必要がありますか?
コード:
import { combineEpics } from 'redux-observable';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/mapTo';
const PING = 'PING';
const PONG = 'PONG';
const pingEpic = action$ => {
const obser = action$.ofType(PING);
return obser.mapTo({ type: PONG });
}
export const epic$ = new BehaviorSubject(combineEpics(pingEpic));
export const createRootEpic = (action$, store) =>
epic$.mergeMap(epic =>
epic(action$, store)
);
更新:
mapTo
方法はBehaviorSubject
オブジェクトに利用可能である(epic$.mapTo
が利用可能である)ではないにActionsObservable
オブジェクト(action$.mapTo
は、関数ではありません) 。
rxjs/add/operator/switchMap ";'を試しましたか? – msanford
@msanford 'switchMap'の代わりに' MapTo'を反映する質問を更新しました。 –
'webpack.config.js'に、' [""、 "を含む[' resolve.extensions'](https://webpack.github.io/docs/configuration.html#resolve-extensions)の配列を追加してください。 webpack.js "、" .web.js "、" .ts "、" .js "、" .json "]'と入力します。それが助けになりましたか? – msanford