下面是我的化简器代码。
import * as Helper from '../utils/helper';
import AppNavigator from "../Navigation/navigationStack";
const initialState = { user: "" };
export function pedagogyReducer(state = initialState, action){
switch (action.type) {
case 'REGISTER':{
state = {
...state,
user: action.newUser,
showError: action.showError ? action.showError : false,
errorMessage: action.errorMessage ? action.errorMessage: "",
}
console.log(action.showError);
{
////////here I want to redirect to login if response if success else want to show error message
}
if(!action.showError){
AppNavigator.router.getStateForAction(
AppNavigator.router.getActionForPathAndParams("Login")
);
return state;
} else {
return state;
}
break;
}
default:
return state;
}
}
export default pedagogyReducer;
我不确定我应该从减速器或其他文件重定向到成功/错误屏幕。我使用了化简器,操作,中间件(获取API(和反应导航。
Reducer 应该是纯函数,所以这不是放置重定向逻辑的最佳位置。
一个帮助处理基于 Redux 操作的副作用的伟大库是 redux-saga,您应该查看他们的文档。
引用他们的网站:
Redux-Saga是一个库,旨在使应用程序的副作用(即异步事情,如数据获取和不纯的东西,如访问浏览器缓存(更易于管理,更高效地执行,易于测试,并更好地处理故障。