¿Hay alguna opción para validar la unicidad de los elementos en la matriz con sí? solo una matriz de cadenas como ['1', '2', '3'] Probé los métodos de otros temas como aquí Sí, ¿cómo validar el valor duplicado en una matriz de objetos?
pero me enfrento al problema cuando no muestra todos los errores de campo en una matriz, pero solo se encuentran primero. Leí sobre la cosa de validateSync ({aboutEarly: false}), pero no puedo implementarla con formik por alguna razón.
¿Quizás alguien tuvo la misma experiencia en cosas de producción?
yup.addMethod(yup.array, 'unique', function (message) { return this.test('unique', message, function (array) { if (!array) return false; const uniqueData = Array.from( new Set(array.map((row) => row)), ); const isUnique = array?.length === uniqueData.length; if (isUnique) { return true; } const index = array.findIndex( (row, i) => row !== uniqueData[i], ); if (array?.[index] === '') { return true; } console.log(`${this.path}.${index}`) return this.createError({ path: `${this.path}.${index}`, message, }); }); }); //{[key: string]: Array<email>} kind of object const validationSchema = yup.object().shape({ emailsByUniqKeys: yup.lazy(obj => yup.object( mapValues(obj, () => yup.array().unique('duplicate') .of(yup.string().email().required()) ) )) }) *** <Formik enableReinitialize initialValues={initialValues} onSubmit={handleSubmit} validationSchema={validationSchema} > ***si hay alguna solución, ¿cómo debo implementar una matriz de índice en la función de validación de sincronización?