Estoy aprendiendo React y Javascript. Hasta ahora es bastante fácil, pero cuando se trata de resolver cómo validar múltiples valores para una entrada e imprimir y un error, no puedo resolverlo con operadores condicionales.
Tengo este componente de forma de gancho de reacción con 3 requisitos de validación: requerido, minLength y patrón:
<Input {...register('password', { required: true, minLength: minChars, pattern: passwordValidation, })} type='password' label={t('common:forms.password')} placeholder={t('common:forms.min_char', { count: minChars, })} errors={ errors.password && errors.password.type === 'minLength' ? errors.password.type === 'required' ? errors.password.type === 'minChars' ? true : true : '' } />Quiero imprimir el valor verdadero si alguna o las 3 validaciones están activas. Intenté algo como:
{errors.password ? true : ''}y no funciona
También este falla
{errors.password && errors.password.type === 'minLength' && errors.password.type === 'required' && errors.password.type === 'minChars' ? true : ''}Tal vez no pueda resolver esto con operadores condicionales y necesito abstraer esta validación en otro lugar o usar yup.
Quiero imprimir el valor verdadero si alguna o las 3 validaciones están activas.
Entonces deberías usar el operador OR lógico || en lugar de Y && :
{errors.password && (errors.password.type === 'minLength' || errors.password.type === 'required' || errors.password.type === 'minChars') ? true : ''}