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

220
Vistas
¿Cómo mostrar los errores de validación del lado del servidor con onFailure() en Editar/Crear componentes?

Me gustaría mostrar los errores del servidor en las notificaciones. De forma predeterminada, la notificación dice "Solicitud incorrecta" cuando se devuelve un 400. Intenté cambiar el comportamiento con onFailure ( https://marmelab.com/react-admin/CreateEdit.html#onfailure ), pero el error de argumento siempre parece ser un HttpError() genérico. El mensaje se pierde en alguna parte, de alguna manera.

 export const MyEdit = (props) => { const refresh = useRefresh(); const onFailure = (error) => { console.log('ERROR stack trace', error); // show 'Error' console.log('ERROR stack trace', error.stack); // show 'Error' refresh(); }; return ( <Edit onFailure={onFailure} {...props} > <SimpleForm> <TextInput source="full_name" fullWidth /> <TextInput source="email" fullWidth /> </SimpleForm> </Edit> ); };

La respuesta en el lado del servidor suele ser algo así

 { field: [ error_message_1, error_message_2, ..., error_message_n ] }

Con el depurador de Chrome, parece que mi problema debería venir de esta clase:

 var HttpError = /** @class */ (function (_super) { __extends(HttpError, _super); function HttpError(message, status, body) { if (body === void 0) { body = null; } var _this = _super.call(this, message) || this; _this.message = message; _this.status = status; _this.body = body; Object.setPrototypeOf(_this, HttpError.prototype); _this.name = _this.constructor.name; if (typeof Error.captureStackTrace === 'function') { // Enter here Error.captureStackTrace(_this, _this.constructor); } else { _this.stack = new Error(message).stack; } // Returns an empty Error(); _this.stack = new Error().stack; return _this; } return HttpError; }(Error));

Devuelve un Error() vacío y la pila no contiene valores del message , body o status anterior.

Entonces, ¿cómo puedo mostrar el mensaje del servidor? Cualquier ayuda sería apreciada.

Por si acaso: Chrome 95: React-Admin: 3.19

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

0

Encontré la respuesta.

Probé error , error.message y error.stack pero no probé error.body . Se hizo evidente después de volver a leer mi pregunta.

error.body devuelve la respuesta JSON de back-end.

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