Почему мой наблюдаемый redux epi c не запускается? - PullRequest
1 голос
/ 08 мая 2020

пытается понять rx js и rx js в наблюдаемых redux и redux, пытаясь сделать простой пример выборки

настроил мой магазин следующим образом:

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)))

и в моем epi c у меня есть

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 и убедился, что он определенно вызывается. как и мой редуктор

Я не понимаю, почему мой epi c не запускается? Я надеялся, что он увидит, что GET_USER_DATA запущен, а затем запустит собственное действие, чтобы поместить разрешенный запрос API в мое состояние.

пожалуйста, сообщите, где я ошибаюсь

1 Ответ

0 голосов
/ 08 мая 2020

хорошо, я понял это

export const store = createStore(reducers, composeEnhancers(applyMiddleware(epicMiddleware)))

epicMiddleware.run(rootEpic)

Мне пришлось назвать это наоборот ^: facepalm:

...