пытается понять 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 в мое состояние.
пожалуйста, сообщите, где я ошибаюсь