Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

160
Vistas
mostrando el mensaje de error devuelto por la validación del servidor en reaccionar

A continuación, se envía una solicitud de axios al servidor para el envío de datos y, a cambio, recibo errores de validación, si los hay.

 const storeExpense = async (expenseData) => { const response = await axios.post('/api/expenses/store/', expenseData).catch(function (error) { if (error.response) { return error.response.data; } else if (error.request) { console.log(error.request); } else { console.log('Error', error.message); } }); return response; }

En otro componente, almaceno retorno en variable,

 const response = await storeExpense(values) if('errors' in response) { setValErrors(Object.values(response)) setStatus({ success: false }); setErrors({ submit: response.errors }); setSubmitting(false); setRequestStatus(true) }

A continuación se muestra la respuesta de retorno, es una matriz y con objetos.

 Array [ "The given data was invalid.", {…} ]​ 0: "The given data was invalid."​ 1: Object { expense_description: (1) […], accountcustomtype_id: (1) […], expense_date: (1) […], … }​​ accountcustomtype_id: Array [ "Expense account is required." ]​​​ ​​expense_amount: Array [ "Expense amount is required." ]​​ expense_date: Array [ "Expense date is required." ]​​ expense_description: Array [ "Expense description is required." ]​​ paymentoption_id: Array [ "Payment with is required." ]​​ taxgroup_id: Array [ "Tax is required." ]​​

¿Cómo puedo imprimir cada mensaje de error de validación? con .mapa()?

Gracias,

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Actualizado después del comentario de @rjcode

Puede intentar obtener todos los errores como una matriz como esta:

 const errorsArr = [].concat(...Object.values(responce[1]))

Y después de eso, puede imprimir todos los errores de esta matriz en <li> , como ejemplo:

 const responce = ["The given data was invalid.", { expense_description: ["Expense account is required."], accountcustomtype_id: ["Expense account is required."], expense_date: ["Expense date is required."], paymentoption_id: ["Payment with is required."], taxgroup_id: ["Tax is required."] } ] const errorsArr = [].concat(...Object.values(responce[1])) class LoopThrough extends React.Component { render() { return ( <div> {this.props.errors.map(error => ( <li key={error} >{error}</li> ))} </div> ); } } ReactDOM.render( <LoopThrough errors={errorsArr} />, document.getElementById('container') );
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="container"> </div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

const response = await storeExpense(values) if('errors' in response){ const errorsList = responce.errors[1]; const errors = Object.keys(errorsList).map(k =>errorsList[k].join('')) setErrors({ submit: errors }); ... };
about 4 years ago · Juan Pablo Isaza 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda