Redux-saga: промежуточное ПО не запускает мою сагу / первый триггер не обработан - PullRequest
0 голосов
/ 30 мая 2018

В моем приложении у меня более 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

Спасибо

...