我使用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),或者在没有开发模式下的工具的情况下在匿名上运行它时,我会让loadAction和history.push正常工作,但我的结果不会被呈现。
有关于为什么会发生这种情况的线索吗??
发布于 2020-05-25 21:34:28
找到了问题所在。
我使用的是react-boiler模板,而他们使用的是useInjectReduceron。我的操作没有被reducer从原始容器中注册,因为该操作属于另一个容器,它实际上并没有被分派。
我不确定为什么当使用devtool时它会起作用,可能是它在整个过程中维护了reducers。
https://stackoverflow.com/questions/61999992
复制相似问题