Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React和Redux:如何在另一个Reducer中访问Reducer的另一个状态_Javascript_Reactjs_Redux_React Redux_Axios - Fatal编程技术网

Javascript React和Redux:如何在另一个Reducer中访问Reducer的另一个状态

Javascript React和Redux:如何在另一个Reducer中访问Reducer的另一个状态,javascript,reactjs,redux,react-redux,axios,Javascript,Reactjs,Redux,React Redux,Axios,在我的应用程序中,供应商的网络中有其他供应商。在前端,当供应商登录时,他们可以看到其网络中其他供应商的列表。除了显示供应商列表,我还想显示他们是在线还是离线。如何从供应商reducer文件访问用户reducer文件(其中具有isOnline状态),以查看谁处于联机和脱机状态?我想在MySQL数据库中添加一个is_online字段,这样每次供应商登录时,它都会更新为1。然而,我觉得必须有一种更好的方法来解决这个问题,即在减缩器中使用状态 //用户还原文件 const initialState =

在我的应用程序中,供应商的网络中有其他供应商。在前端,当供应商登录时,他们可以看到其网络中其他供应商的列表。除了显示供应商列表,我还想显示他们是在线还是离线。如何从供应商reducer文件访问用户reducer文件(其中具有isOnline状态),以查看谁处于联机和脱机状态?我想在MySQL数据库中添加一个is_online字段,这样每次供应商登录时,它都会更新为1。然而,我觉得必须有一种更好的方法来解决这个问题,即在减缩器中使用状态

//用户还原文件

const initialState = {
  token: localStorage.getItem('token'),
  isAuthenticated: false,
  isLoading: false,
  user: null,
  isOnline: false
};


export default function(state = initialState, action){
  switch(action.type){
    case USER_AUTHENTICATED:
      return{
        ...state,
        isAuthenticated: true,
        isLoading: false,
        isOnline: true
      };
    case USER_LOADED:
      return{
        ...state,
        isAuthenticated: true,
        isLoading: false,
        user: action.payload
        isOnline: true
      };
    case LOGIN_SUCCESS:
    localStorage.setItem('token', action.payload.token);
    const {token,...user} = action.payload;
    return{
      ...state,
      token: token,
      user: user,
      isAuthenticated: true,
      isLoading: false,
      isOnline: true
    };
    case LOGOUT_SUCCESS:
    localStorage.removeItem('token');
      return{
        ...state,
        token: null,
        isAuthenticated: false,
        isLoading: false,
        user: null,
        isOnline: false
      };

    default:
      return state;
  }
}
//供应商清单文件

const initialState = {
  supplierList: [],
  isLoading: false
};

export default function(state = initialState, action){
  switch(action.type){
    case LOADING_DATA:
    case LOGIN_SUCCESS:
      return{
        ...state,
        isLoading: true
      };
    case GET_SUPPLIER_LIST:
      return{
        ...state,
        supplierList: action.payload,
        isLoading: false
      };
    default:
      return state;
  }
}

如果要跨多个减速器访问状态,请使用选择器