Redux-Saga не отображается, когда Redux-Devtools отключен

Я использую redux-saga, чтобы заполнить свое состояние результатом, а затем перенаправить их на следующую страницу.

function* postSearchAction(action) {
  yield put(loadingAction(true));
  let result;
  try {
    result = yield call(request, `${process.env.API_URL}result`, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(action.form),
    });

    yield put(loadResult(result));
    yield put(loadingAction(false));
    yield put(history.push('/result'));
  } catch (err) {
    // Do Nothing for now
  }
}


export default function* homeSaga() {
  yield takeLatest(SUBMIT_FORM, postSearchAction);
}

Странно то, что это работает всякий раз, когда Redux-Devtools работает в браузере. Когда я развертываю его как производственный (инструменты разработки отключены) или запускаю его в режиме инкогнито без инструментов в режиме разработки, я получаю работу loadAction и history.push, но мой результат не отображается.

любые подсказки относительно того, почему это происходит??


person N. Sutjipto    schedule 25.05.2020    source источник


Ответы (1)


Выяснил проблему.

Я использовал плиту реактивного котла, а они используют useInjectReduceron каждый контейнер. Мое действие не было зарегистрировано редуктором из исходного контейнера, поскольку действие принадлежит другому контейнеру, оно фактически не было отправлено.

Я не уверен, почему это работает, когда используется devtool, возможно, он поддерживает редьюсеры по пути.

person N. Sutjipto    schedule 25.05.2020