Observable .map 不是一个函数
Observable .map is not a function
我要疯了!作为 React/Nextjs 应用程序的副作用,我正在尝试
使用 redux-observable
获得基本的 ajax 请求:
import {combineEpics} from 'redux-observable'
import {mergeMap} from 'rxjs/operators'
import {ajax} from 'rxjs/ajax'
const fetchSearchEpic = action$ =>
action$
.ofType('FETCH_SEARCH')
.pipe(
mergeMap(action =>
ajax.getJSON(`http://localhost:3001/search/${action.payload.query}`)
.map(response => ({ type: FETCH_SEARCH_FULFILLED, response }))
)
)
export const rootEpic = combineEpics(
fetchSearchEpic
)
但我这辈子都做不到。请求未被触发,我不断收到的错误是:
Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_2_rxjs_ajax__.a.getJSON(...).map is not a function
现在我猜它可能与导入依赖项的新 RxJS 6 方式有关,不知何故我需要导入 .map 以将其添加到 Observable,但是如何?
我试过:
import 'rxjs'
import 'rxjs/observable/map'
import {map} from 'rxjs/observable'
None达到预期效果...
版本:
"react": "16.4.0",
"redux": "4.0.0",
"react-redux": "5.0.7",
"redux-observable": "1.0.0-beta.2",
"rxjs": "6.2.1"
map
(以及其他 Rx 运算符)自 RxJS 6 起不再存在于 Observable
的原型上,因为 a few reasons.
运算符现在改为使用 pipe
:
链接
ajax.getJSON(`http://localhost:3001/search/${action.payload.query}`)
.pipe(map(response => ({ type: FETCH_SEARCH_FULFILLED, response })
确保像这样导入 map
:
import { map } from 'rxjs/operators';
请参阅 Pipeable Operators,其中概述了这些更改。
我要疯了!作为 React/Nextjs 应用程序的副作用,我正在尝试
使用 redux-observable
获得基本的 ajax 请求:
import {combineEpics} from 'redux-observable'
import {mergeMap} from 'rxjs/operators'
import {ajax} from 'rxjs/ajax'
const fetchSearchEpic = action$ =>
action$
.ofType('FETCH_SEARCH')
.pipe(
mergeMap(action =>
ajax.getJSON(`http://localhost:3001/search/${action.payload.query}`)
.map(response => ({ type: FETCH_SEARCH_FULFILLED, response }))
)
)
export const rootEpic = combineEpics(
fetchSearchEpic
)
但我这辈子都做不到。请求未被触发,我不断收到的错误是:
Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_2_rxjs_ajax__.a.getJSON(...).map is not a function
现在我猜它可能与导入依赖项的新 RxJS 6 方式有关,不知何故我需要导入 .map 以将其添加到 Observable,但是如何?
我试过:
import 'rxjs'
import 'rxjs/observable/map'
import {map} from 'rxjs/observable'
None达到预期效果...
版本:
"react": "16.4.0",
"redux": "4.0.0",
"react-redux": "5.0.7",
"redux-observable": "1.0.0-beta.2",
"rxjs": "6.2.1"
map
(以及其他 Rx 运算符)自 RxJS 6 起不再存在于 Observable
的原型上,因为 a few reasons.
运算符现在改为使用 pipe
:
ajax.getJSON(`http://localhost:3001/search/${action.payload.query}`)
.pipe(map(response => ({ type: FETCH_SEARCH_FULFILLED, response })
确保像这样导入 map
:
import { map } from 'rxjs/operators';
请参阅 Pipeable Operators,其中概述了这些更改。