【问题标题】:React-redux navigation after calling API调用 API 后的 React-redux 导航
【发布时间】:2018-01-18 18:06:10
【问题描述】:

下面是我的减速器代码。

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;

我不确定我应该从 reducer 还是从其他文件重定向到成功/错误屏幕。我使用过 reducer、action、middleware(fetch APIs) 和 react-navigation。

【问题讨论】:

    标签: react-native navigation react-redux react-navigation


    【解决方案1】:

    reducer 应该是纯函数,因此这不是放置重定向逻辑的最佳位置。

    redux-saga 是一个很棒的库,可以帮助处理基于 Redux 操作的副作用,您应该看看他们的文档。

    引用他们的网站:

    redux-saga 是一个库,旨在使应用程序的副作用(即异步的事情,如数据获取和不纯的事情,如访问浏览器缓存)更易于管理、更高效的执行、更简单测试,更擅长处理故障。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-02
      • 2018-04-08
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      相关资源
      最近更新 更多