Esta es la solución más correcta que encomtrarás dar, sin embargo estúdiala detenidamente y valora si se adapta a tu proyecto.
Solución:
Cambio
handleChange("year")
A
handleChange("year")(selectedOption.value);
Actualmente el year
El campo en el valor de Formik no se actualiza. La función handleChange() devuelve una nueva función a la que se puede llamar con un valor para actualizar el estado de Formik.
La forma más fácil de detectar estas cosas es generar los accesorios de Formik con el siguiente código:
JSON.stringify(props, null, 2)Vea este sandbox para ver un ejemplo. En el sandbox, eliminé por completo la necesidad del estado de año personalizado. Recomiendo usar solo el estado de Formik para manipular los valores. Usando solo el estado de Formik, probablemente tendrá que extraer solo la parte del año al guardar, porque react-select usa el objeto completo de manera predeterminada.
solución fácil :: funciona,,,,, incluso para cualquier otro tipo de entrada de campo de entrada como reaccionar-color, o datepicker o cualquier cosa… Al usar esta lógica… Debe engañar a formik para que considere esto como un evento… El ejemplo se da a continuación… aquí – handleChange es de formik
validationSchema = yup.object( year_value :yup.string().required('*year value is required.') )
En caso de que alguien esté buscando soluciones a esto en el futuro, aquí hay un enfoque alternativo para obtener el valor seleccionado como string desde reaccionar-seleccionar, y aún hacer que Yup realice la validación en la entrada seleccionada:
Con la función auxiliar de useField(), puede establecer el valor, el estado tocado y el estado de error de un “Campo”. useField() es útil cada vez que trabaja con elementos que no son entradas, como reaccionar-seleccionar.
function FormikSelect(...props) const [field, meta, helpers] = useField(name="mySelectInput"); // can pass 'props' into useField also, if 'props' contains a name attribute const setValue, setTouched, setError = helpers; const setFieldProps = (selectedOption) => setValue(selectedOption.value) setTouched(true) setError(undefined) return (
valoraciones y reseñas
Agradecemos que quieras añadir valor a nuestro contenido tributando tu experiencia en las aclaraciones.
¡Haz clic para puntuar esta entrada!(Votos: 2 Promedio: 4)Utiliza Nuestro Buscador