как я могу объединить несколько саг в rootSaga? - PullRequest
0 голосов
/ 03 августа 2020

У меня есть две саги, и я пытаюсь объединить их в свою root сагу. Однако это не работает, как я ожидал.

Вот сага номер 1

import { put, takeEvery, all } from 'redux-saga/effects';

// Categories
function* requestAddCategory({ name }) {
  try {
      .....
    }); 
  } catch (err) {
  }
}

export function* watcherSaga() {
  yield takeEvery(type.REQUEST_ADD_CATEGORY, requestAddCategory);
}

export default function* organize() {
  yield all([watcherSaga()]);
}

и номер саги 2

import { put, takeEvery, all } from 'redux-saga/effects';

//Login Auth
function* userLogin({ payload }) {
  try {

    });
      },
    });
  } catch (err) {

  }
}

export function* watcherSaga() {
  yield takeEvery(type.USER_LOGIN, userLogin);
}

export default function* userAuthSaga() {
  yield all([watcherSaga()]);
}

Я объединил их два таких мудреца

import { all, fork } from 'redux-saga/effects';
import userAuthSaga from './webServiceSagas/user/userAuth';
import organize from './organize/organize';

export default function* rootSaga() {
  yield all([fork(userAuthSaga)], fork(organize));
}

и он подключен к

import { createStore, applyMiddleware, compose } from 'redux';
import createSagaMiddleware from 'redux-saga';
import rootReducer from './reducers';
import rootSaga from './sagas';

const sagaMiddleware = createSagaMiddleware();
export const store = createStore(
  rootReducer,
  compose(applyMiddleware(sagaMiddleware))
);
sagaMiddleware.run(rootSaga);

Я что-то упустил? Он работал до того, как я начал его организовывать, а также попробовал использовать метод веб-страницы redux-saga. Однако я не совсем понял, как работать с watcherSaga ().

1 Ответ

1 голос
/ 03 августа 2020

Согласно docs вы можете объединить свои саги в root саги следующим образом:

const [task1, task2, task3] = yield all([ fork(saga1), fork(saga2), fork(saga3) ])
...