我正在尝试将 redux-saga 集成到我的 React 应用程序中。我目前正在通过在命中正确的路线时使用 ReplaceReducer 动态注入(inject)它来进行代码分割 reducer 。我正在添加一个代码片段。
reducerRegistry.setChangeListener(reducers => {
store.replaceReducer(combine(reducers));
});
我想对传奇做同样的事情,但无法找到动态注入(inject)传奇的方法。
最佳答案
我尝试像下面那样实现它,它似乎有效。
export class SagaRegistry {
constructor() {
this._emitChange = null;
this._sagas = {};
}
getSagas() {
return { ...this._sagas };
}
register(name, saga) {
if (this._sagas[name]) {
return;
}
this._sagas = { ...this._sagas, [name]: saga };
if (this._emitChange) {
this._emitChange(saga);
}
}
setChangeListener(listener) {
this._emitChange = listener;
}
}
const sagaRegistry = new SagaRegistry();
export default sagaRegistry;
像这样运行传奇。
sagaRegistry.setChangeListener(saga => {
sagaMiddleware.run(saga);
});
关于reactjs - 动态加载 sagas 以在 Redux 应用程序中进行代码分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54005990/