首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的redux-observable epic没有被触发?

为什么我的redux-observable epic没有被触发?
EN

Stack Overflow用户
提问于 2020-05-08 17:39:07
回答 1查看 441关注 0票数 1

通过尝试执行一个简单的抓取示例,尝试理解redux和redux可见对象中的rxjs和rxjs

我的商店是这样设置的:

代码语言:javascript
复制
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)))

在我的史诗中我得到了

代码语言:javascript
复制
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)

我也有我的动作创建者:

代码语言:javascript
复制
export const fetchData = () => ({ type: 'GET_USER_DATA' })

这会在我挂载的组件中触发。我已经封装了mapDispatchToProps,并且我已经验证了它肯定会被调用。就像我的减速器一样

我不明白为什么我的史诗没有被触发?我希望它能看到GET_USER_DATA被触发,然后触发它自己的操作,将解析的API请求放入我的状态。

请告诉我哪里出了问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-08 18:22:27

好的,我想通了

代码语言:javascript
复制
export const store = createStore(reducers, composeEnhancers(applyMiddleware(epicMiddleware)))

epicMiddleware.run(rootEpic)

我不得不以另一种方式调用它们^ :facepalm:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61676209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档