为什么我的 redux-observable 史诗没有被触发?
Why is my redux-observable epic not being triggered?
通过尝试做一个简单的获取示例来尝试理解 redux 和 redux observables 中的 rxjs 和 rxjs
我的商店设置如下:
import { applyMiddleware, createStore } from 'redux'
import { reducers } from 'redux/reducers'
import { createEpicMiddleware } from 'redux-observable'
import rootEpic from '../epics'
const epicMiddleware = createEpicMiddleware()
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
epicMiddleware.run(rootEpic)
export const store = createStore(reducers, composeEnhancers(applyMiddleware(epicMiddleware)))
在我的史诗中我有
const getUserDataEpic = (action$, state$) =>
action$.pipe(
ofType('GET_USER_DATA'),
mergeMap(async (action) => {
const url = `my-url-is-here`
const data = await fetch(url).then((res) => res.json())
return Object.assign({}, action, { type: 'GET_DATA_SUCCESS', data })
}),
catchError((err) => Promise.resolve({ type: 'FETCH_ERROR', message: err.message })),
)
const epic2 = (action$, state$) => {}
export default combineEpics(getUserDataEpic)
我还有我的动作创作者:
export const fetchData = () => ({ type: 'GET_USER_DATA' })
这在我的组件中被触发。我已经包裹在 mapDispatchToProps 中并且我已经验证它确实被调用了。和我的减速器一样
我不明白为什么我的史诗没有被触发??我希望它会看到 GET_USER_DATA
被触发,然后触发它自己的操作以将已解决的 API 请求放入我的状态。
请指出我哪里出错了
好的,我明白了
export const store = createStore(reducers, composeEnhancers(applyMiddleware(epicMiddleware)))
epicMiddleware.run(rootEpic)
我不得不反过来调用这些 ^ :facepalm:
通过尝试做一个简单的获取示例来尝试理解 redux 和 redux observables 中的 rxjs 和 rxjs
我的商店设置如下:
import { applyMiddleware, createStore } from 'redux'
import { reducers } from 'redux/reducers'
import { createEpicMiddleware } from 'redux-observable'
import rootEpic from '../epics'
const epicMiddleware = createEpicMiddleware()
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
epicMiddleware.run(rootEpic)
export const store = createStore(reducers, composeEnhancers(applyMiddleware(epicMiddleware)))
在我的史诗中我有
const getUserDataEpic = (action$, state$) =>
action$.pipe(
ofType('GET_USER_DATA'),
mergeMap(async (action) => {
const url = `my-url-is-here`
const data = await fetch(url).then((res) => res.json())
return Object.assign({}, action, { type: 'GET_DATA_SUCCESS', data })
}),
catchError((err) => Promise.resolve({ type: 'FETCH_ERROR', message: err.message })),
)
const epic2 = (action$, state$) => {}
export default combineEpics(getUserDataEpic)
我还有我的动作创作者:
export const fetchData = () => ({ type: 'GET_USER_DATA' })
这在我的组件中被触发。我已经包裹在 mapDispatchToProps 中并且我已经验证它确实被调用了。和我的减速器一样
我不明白为什么我的史诗没有被触发??我希望它会看到 GET_USER_DATA
被触发,然后触发它自己的操作以将已解决的 API 请求放入我的状态。
请指出我哪里出错了
好的,我明白了
export const store = createStore(reducers, composeEnhancers(applyMiddleware(epicMiddleware)))
epicMiddleware.run(rootEpic)
我不得不反过来调用这些 ^ :facepalm: