如何将多个 sagas 合并到 rootSaga 中?
how can I combine multiple sagas into rootSaga?
我有两个传奇并试图合并到我的根传奇中。然而,这并没有像我预期的那样工作。
这是 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()。
根据docs,您可以通过这种方式将您的传奇合并到根传奇中:
const [task1, task2, task3] = yield all([ fork(saga1), fork(saga2), fork(saga3) ])
我有两个传奇并试图合并到我的根传奇中。然而,这并没有像我预期的那样工作。
这是 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()。
根据docs,您可以通过这种方式将您的传奇合并到根传奇中:
const [task1, task2, task3] = yield all([ fork(saga1), fork(saga2), fork(saga3) ])