Мне нужно использовать усилитель магазина (reactReduxFirebase из react-redux-firebase) в моем redux приложение. Этот энхансер отправляет действие, оно выглядит примерно так (очень упрощенно):
const reactReduxFirebase = (next) => {
return (reducer, initialState, middleware) => {
const store = next(reducer, initialState, middleware);
store.dispatch({
type: 'DUMMY_ACTION'
});
return store;
}
}
// usage
const sagaMiddleware = createSagaMiddleware();
const middleware = [sagaMiddleware];
const store = createStore(
reducer,
initialState,
compose(
applyMiddleware(...middleware),
reactReduxFirebase
)
);
sagaMiddleware.run(sagas);
// sagas.js
function* handle(action) {
console.log(action);
}
function* saga() {
yield takeEvery('*', handle);
}
export default saga;
Я хочу, чтобы saga слушала все действия и console.log их, но она не улавливает 'DUMMY_ACTION', отправляемую энхансером, потому что она отправляется до того, как saga начинает слушать (sagaMiddleware.run(sagas);
). Из документов redux-saga кажется, что сага должна запускаться после applyMiddleware, поэтому я не могу запустить сагу перед усилителем. Есть ли способ заставить его работать, чтобы сага также улавливала действие усилителя?