• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

622
Views
El error joi 17.6.0 no tiene sentido según la regla: alphanum devuelve un error en una cadena vacía

Estoy usando joi para la validación de front-end en React. No uso joi-browser ya que me dijeron que estaba obsoleto. Aquí hay una parte del esquema joi:

 schema = Joi.object({ namePrefix: Joi.string() .trim() .alphanum() .regex(/[ab]/i) .min(0) .max(100) .messages({ "string.pattern.base": "Name parts should be letters only", }), givenName: Joi.string() .trim() .alphanum() .regex(/[ab]/i) .min(1) .max(100) .messages({ "string.pattern.base": "Name parts should be letters only", }) .required()});

Aquí hay una función de actualización de accesorios que también realiza la validación:

 handleUpdateProp = (e, propName) => { const rule = this.schema.extract(propName); const subSchema = Joi.object({ [propName]: rule }); const propValue = e.target.value; const objToValidate = { [propName]: propValue }; const { error } = subSchema.validate(objToValidate); const validationResult = error ? error : null; const validationError = validationResult ? validationResult.details[0].message : null; const stateErrors = this.state.errors; stateErrors[propName] = validationError; this.setState({ [propName]: propValue, errors: stateErrors, }); };

namePrefix y GivenName corresponden a campos de formulario y un div se representa condicionalmente debajo de ellos si hay un error para ese campo. Si escribo un carácter en namePrefix, no hay error: Hasta ahora, todo bien. Cuando elimino el carácter, joi devuelve el error '"namePrefix" solo debe contener caracteres alfanuméricos'

Ejemplo: eliminar caracteres arroja un error alfanum...

Obviamente, no se debe devolver ningún error porque se permite que la cadena esté vacía. ¿Por qué está pasando esto? ¡Por favor ayuda!

almost 3 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error