reactjs - 动态加载 sagas 以在 Redux 应用程序中进行代码分割

标签 reactjs redux redux-saga

我正在尝试将 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/

相关文章:

javascript - 在 Redux reducer 中对对象数组进行排序

javascript - redux saga channel 关闭后如何运行同步代码

reactjs - Eslint 与 React CSS 模块

javascript - nouislider 步骤不适用于多个范围

python - django 中请求正文为空

reactjs - 在 redux-saga 或 reducer 中处理下载项标准化?

javascript - 如何在没有break语句的情况下结束while(true)循环?

javascript - react .js : how to make inline styles automatically update progress bar on state change

reactjs - Redux actions/reducers 与直接设置状态

javascript - Redux状态会在路由更改时自行重置(我认为)