Я должен погрузиться в Redux-Observable, и моя битва - конвертировать саги
function* loadTabs(action) {
const tabs = yield call(api.fetchTabs)
yield put(actions.setTabs(tabs))
const tabId = tabs[0].id
yield put(actions.selectTab(tabId))
yield put(actions.loadWidgets(tabId))
}
function* loadWidgets({ tabId }) {
const widgets = yield call(api.fetchWidgets, tabId)
yield put(actions.setWidgets(widgets))
yield put(actions.setDashboardReady(true))
}
/* WATCHER */
function* mySaga() {
yield takeEvery(types.TABS_REQUESTED, loadTabs)
yield takeEvery(types.WIDGETS_REQUESTED, loadWidgets)
}
в эпос. То, что я сделал, это
const loadTabs = (action$, state$) => action$.pipe(
ofType(types.TABS_REQUESTED),
mergeMap(() => api.fetchTabs()),
map(tabs => actions.setTabs(tabs))
)
const loadWidgets = action$ => action$.pipe(
ofType(types.WIDGETS_REQUESTED),
mergeMap(() => api.fetchTabs()),
map(widgets => actions.setWidgets(widgets)),
)
const rootEpic = combineEpics(loadTabs, loadWidgets)
«Цепочка отправки» должна быть «TABS_REQUESTED> setTabs> selectTab> loadWidgets> setDashboardReady». Я остановился с
'TABS_REQUESTED> setTabs'
Пожалуйста, пни меня вперед с пропущенными частями. Я просто перегружен руководством прямо сейчас. Спасибо.