Reactjs redux saga无法捕获存储增强程序调度的操作

Reactjs redux saga无法捕获存储增强程序调度的操作,reactjs,redux,react-redux,redux-saga,Reactjs,Redux,React Redux,Redux Saga,我需要在我的redux应用程序中使用商店增强器(reactReduxFirebase from)。这个增强器发送一个动作,它看起来或多或少像这样(简化了很多): const reactReduxFirebase=(下一步)=>{ 返回(减速器、初始状态、中间件)=>{ const store=next(reducer、initialState、中间件); 仓库调度({ 类型:“伪动作” }); 退货店; } } //用法 const sagaMiddleware=createSagaMiddl

我需要在我的redux应用程序中使用商店增强器(reactReduxFirebase from)。这个增强器发送一个动作,它看起来或多或少像这样(简化了很多):

const reactReduxFirebase=(下一步)=>{
返回(减速器、初始状态、中间件)=>{
const store=next(reducer、initialState、中间件);
仓库调度({
类型:“伪动作”
});
退货店;
}
}
//用法
const sagaMiddleware=createSagaMiddleware();
const中间件=[sagaMiddleware];
const store=createStore(
减速器,
初始状态,
谱写(
applyMiddleware(…中间件),
反应性燃烧基
)
);
sagaMiddleware.run(sagas);
//sagas.js
函数*句柄(操作){
控制台日志(操作);
}
函数*saga(){
屈服带('*',手柄);
}

出口违约事件
基于
applyMiddlware
的解决方案:

从“redux saga”导入createSagaMiddleware;
从“redux saga/effects”导入{takeEvery};
从“redux”导入{createStore,compose};
进口{
减速器
}来自“../reducers”;
功能SAGAPREINIT中间件(saga){
返回(createStore)=>(还原器、预加载状态、增强器)=>{
const sagaMiddleware=createSagaMiddleware();
const store=createStore(减速器、预加载状态、增强器);
let dispatch=store.dispatch;
const middlewareAPI={
getState:store.getState,
调度:(操作)=>调度(操作)
};
dispatch=compose(sagaMiddleware(middlewareAPI))(store.dispatch);
sagaMiddleware.run(saga);//运行saga
返回{
…商店,
派遣
};
};
}
const reactReduxFirebase=(下一步)=>{
返回(减速器、初始状态、中间件)=>{
const store=next(reducer、initialState、中间件);
仓库调度({
类型:“伪动作”
});
setTimeout(store.dispatch)({
类型:“虚拟动作1”
}), 100);
退货店;
};
};
//用法
常量中间件=[];
const store=createStore(
减速器,
0,
谱写(
火基反应器,
萨加普雷尼(sagas)
)
);
//sagas.js
函数*句柄(操作){
控制台日志(操作);
}
函数*sagas(){
屈服带('*',手柄);
}
日志:

00000000:[reducer]操作对象{type:@@redux/INIT}
00000008:[reducer]操作对象{type:“DUMMY_action”}
对象{type:“伪动作”}
00000011:[reducer]操作对象{type:“DUMMY_action_1”}
对象{type:“DUMMY_ACTION_1”}
为传奇故事试一试

function* log(action) {
  while (true) {
    yield take('*');
    console.log(action);
  }
}

export default function* root() {
  yield all([call(log)]);
}

只是想看看它是否有效,然后你可以尝试移动到takeEvery,我确实遇到了问题,创建了特定于saga的句柄是否有效

你是否尝试过颠倒compose参数的顺序。这样firebase就可以通过saga增强的createStore来解决您的问题。