Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

198
Visualizações
Cómo actualizar el estado con datos obtenidos usando useReducer

Estoy creando una calculadora con React y tengo problemas para actualizar mi estado con datos obtenidos. El resultado se obtiene correctamente, pero la aplicación falla porque no espera la operación de obtención asíncrona. ¿Podría alguien ayudarme a combinar la operación asíncrona con useReducer?

Mis acciones:

 export const ACTIONS = { ADD_DIGIT: "add-digit", CHOOSE_OPERATION: "choose-operation", CLEAR: "clear", DELETE_DIGIT: "delete-digit", EVALUATE: "evaluate", };

Mi reductor:

 const reducer = (state, { type, payload }) => { switch (type) { ... some other actions ... case ACTIONS.CHOOSE_OPERATION: if (state.currentOperand == null && state.previousOperand == null) { return state; } if (state.currentOperand == null) { return { ...state, operation: payload.operation, }; } if (state.previousOperand == null) { return { ...state, operation: payload.operation, previousOperand: state.currentOperand, currentOperand: null, }; } return { ...state, previousOperand: evaluate(state), operation: payload.operation, currentOperand: null, }; case ACTIONS.EVALUATE: if ( state.operation == null || state.currentOperand == null || state.previousOperand == null ) { return state; } return { ...state, overwrite: true, previousOperand: null, operation: null, currentOperand: evaluate(state), }; } };

Mi función de evaluación:

 const evaluate = ({ currentOperand, previousOperand, operation }) => { const prev = parseFloat(previousOperand); const current = parseFloat(currentOperand); if (isNaN(prev) || isNaN(current)) return ""; const fetchData = async () => { const response = await axios.post("/calculation", { a: prev, b: current, operator: operation, }); return response.data.result; }; let computation = ""; const getResult = async () => { const response = await fetchData(); computation = response; }; return computation.toString(); };
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda