es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

[Redux][Axios][React] Agregar el estado de redux dentro de un archivo axios / action.

Quiero agregar/cambiar un estado de redux cuando se recibe información desde el backend. Este estado controla un spinner de carga.
El código a continuación es lo que pensé que debería funcionar.

¿Qué me falta?

CouriersActions.js

import axios from "axios";
import { toastOnError } from "../../utils/Utils";
import { GET_COURIERS, ADD_STATE_LOADING } from "./CouriersTypes";

export const addStateLoading = (state_loading) => ({
  type: ADD_STATE_LOADING,
  state_loading,
});

export const getCouriers = () => dispatch => {
  var tempx = {show: true};
  addStateLoading(tempx);
  axios
    .get("/api/v1/couriers/")
    .then(response => {
      dispatch({
        type: GET_COURIERS,
        payload: response.data
      });
      var tempx = {show: false};
      addStateLoading(tempx);
    })
    .catch(error => {
      toastOnError(error);
    });
};
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Necesitas despachar la acción addStateLoading en lugar de llamarla directamente dentro de getCouriers.

    Cambia la línea addStateLoading(tempx); a dispatch(addStateLoading(tempx)); tanto antes como después de la llamada axios. Esto asegurará que la acción ADD_STATE_LOADING sea despachada y actualice el estado relevante en Redux.

Comments are closed.