reactjs - 禁用 Redux-Devtools 时 Redux-Saga 不渲染
问题描述
我正在使用 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
andhistory.push
工作,但我的结果未呈现。
关于为什么会发生这种情况的任何线索?
解决方案
发现了问题。
我正在使用反应锅炉板,他们正在使用useInjectReduceron
每个容器。由于该操作属于另一个容器,因此减速器没有从原始容器注册我的操作,它实际上并没有被调度。
我不确定为什么在使用 devtool 时它会起作用,也许它会一直维护减速器。
推荐阅读
- java - 在可运行 jar 中包含 src/main/resources 中的文件
- lotus-notes - 防止 NotesDocument 在打开时寻找冗余服务器
- laravel - 完全自定义 Laravel Nova 界面
- python - 无法弄清楚如何在 JSON 中进一步展平嵌套以输出到 CSV
- asp.net-web-api2 - WebAPI 2 方法对一个方法说 404,但不是另一种方法
- multithreading - 在这种读写器情况下是否需要检查条件变量虚假唤醒?
- jquery - 使用jquery滚动到div中的像素数
- typescript - RxJS typescript 理解泛型类型
- java - 结合 Eclipse RCP 3 和 4
- r - 跳过 r 中 for 循环中的特定列