当Redux-Devtools被禁用时,Redux-Saga无法渲染。

问题描述 投票:0回答:1

我使用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在浏览器上运行,就会出现这种情况。当我将它部署为生产模式(devtools被禁用)或在没有工具的情况下在开发模式下以隐身方式运行时,我将得到以下信息 loadActionhistory.push 的工作,但我的结果没有呈现。

有什么线索可以告诉我为什么会发生这种情况吗?

reactjs redux redux-saga
1个回答
0
投票

找到了问题所在。

我使用的是react-boiler板块,而他们使用的是 useInjectReduceron 的每个容器。我的动作没有被原容器的reducer注册,因为动作属于另一个容器,所以没有真正被派遣。

我不知道为什么在使用devtool的时候可以工作,也许它在途中维护了reducer。

© www.soinside.com 2019 - 2024. All rights reserved.