Редакция саги root саг во время выполнения - PullRequest
0 голосов
/ 03 февраля 2020

Мне нужно заменить подписки на саги для указанных действий.

Мой 1-й файл саги:

export function* sagaOne() {
    yield [
    // watchers for specifed actions
    ]
}

Мой другой файл саги:

export function* sagaOther() {
    yield [
    // watchers for other, different actions
    ]
}

Итак, я Я использую Provider из react-redux для предоставления магазина:

export function getStore() {
  const sagaMiddleware = createSagaMiddleware();
  const middleware: Middleware[] = [sagaMiddleware];

  let enhancers = applyMiddleware(...middleware);

  const env = process.env.NODE_ENV;
  if (env !== 'production' && env !== 'test') {
    middleware.push(logger);
    enhancers = composeWithDevTools(applyMiddleware(...middleware));
  }

  const store = createStore<IRootState>(reducers, enhancers);
  sagaMiddleware.run(sagaOne);

  return store;
}

Затем в моем index.tsx:

//...
const store = getStore();
//...
   <ReactRedux.Provider store={store}>
      <App />
    </ReactRedux.Provider>,

В index.tsx мне нужно изменить саги, и его действия наблюдатели в зависимости от некоторых условий. Я знаю, что не могу заменить весь магазин, react-redux не предоставляет такой опции.

Возможно ли это?

...