В моем приложении у меня более 10 саг.Я использую sagaMiddleWare для запуска моих саг:
sagas.map(saga => { sagaMiddleware.run(saga)});
Со следующей сагой, где я хочу сделать что-то другое в зависимости от полезной нагрузки действия, у меня возникают трудности с его работой:Я хочу.
Прямо сейчас это работает, кроме первого раза, когда действие отправляется после загрузки приложения.Если бы я повторил действие, эффект сработал правильно.Похоже, что сага не запускается до первого запроса.
function* ordersRequestSaga() {
const action = yield take(OrderActions.TypeKey.GET_ORDERS_REQUEST);
switch (action.payload.requestType) {
case OrderData.RequestType.Open:
yield takeLatest(action.type, fetchOpenOrders);
break;
default:
break;
}
}
Если бы я написал свой код следующим образом (без взятия и переключения, все работает с самого начала)
function* ordersRequestSaga() {
yield takeLatest(OrderActions.TypeKey.GET_ORDERS_REQUEST, fetchOpenOrders);
}
}
Я знаю, что хорошим решением было бы создание GET_OPEN_ORDERS_REQUEST и т. Д. Но я действительно хочу сохранить эту структуру.Хотите знать, если кто-нибудь знает, что может вызвать такое поведение, или даже лучше, решение ...: D
Спасибо