• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

285
Vistas
React/Redux: dónde procesar los datos de la respuesta de la API y enviar la acción de los reductores

Soy nuevo en React y Redux, por lo que esta es una pregunta de mejores prácticas.

Tengo un creador de acciones que activa una llamada a la API y envía la respuesta a mi reductor:

 export function loadDrawSuccess(draw) { return { type: ActionTypes.LOAD_DRAW_SUCCESS, draw}; } export function loadDraw() { return function(dispatch) { dispatch(beginAjaxCall()); return drawApi.getDraw().then(draw => { dispatch(loadDrawSuccess(draw)); }).catch(() => { dispatch(ajaxCallError()); }); }; }

Ahora... En mi reductor, estoy procesando la respuesta para extraer los datos que necesito de ella...

 function extractNextOpenDraw(draws) { if (!draws || typeof draws.content === 'undefined'){ return {}; } let openDraws = draws.content.filter(draw => {return draw.status === 'open';}); let sortedOpenDraws = openDraws.sort((draw1, draw2) => { return DateHelper.getDateObjectFromUtcDateString(draw1.closeTimeUtc) - DateHelper.getDateObjectFromUtcDateString(draw2.closeTimeUtc); }); return sortedOpenDraws[0]; } export default function drawReducer(state = initialState.draw, action) { switch (action.type) { case types.LOAD_DRAW_SUCCESS: { return objectAssign({}, extractNextOpenDraw(action.draw), {dateModified: action.dateModified}); } ........ default: return state; } }

mis preguntas son

  1. ¿Estoy en lo correcto al procesar la respuesta en el reductor, o debería manejarse en la clase API o en el creador de la acción?
  2. En una instancia en la que la API devuelve sin error, pero el formato de respuesta no se ajusta al formato esperado, me gustaría enviar la acción ajaxCallError(). ¿Es correcto hacer esto dentro del reductor?
about 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  1. No, el reductor debe ser lo más limpio posible y solo actualizar la tienda con los valores que se le sirven. Debe analizar la respuesta en la acción en sí o crear un contenedor para la API. Creo que hacerlo en la acción en sí es lo suficientemente bueno.
  2. No, maneje todos esos errores en la acción y envíelos allí. El reductor no puede ni debe despachar acciones.
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda