Je crée un formulaire avec material-ui
et j'utilise Formik
et Yup
pour la validation.
Les composants TextField fonctionnent parfaitement, cependant, le composant KeyboardDatePicker
présenté l'erreur suivante dans la console
_onChange n'est pas une fonction
et présente maintenant
le type n'est pas défini.
Voici un cbs avec le code. https://codesandbox.io/s/agitated-dust-wf6fn
3 Réponses :
Changez simplement la fonction onChange
comme ceci :
onChange={(name, value) => formik.handleChange('dob', value)}
le bac à sable de code ne fonctionne pas. Le changement de date ne change pas dans le sélecteur de date
vous pouvez utiliser .setFieldValue
pour définir la valeur manuellement sur l'événement onChange
.
onChange={val => { console.log("___", val); formik.setFieldValue("dob", val); }}
cette méthode fonctionnera dans tous les cas d'utilisation.
A parfaitement fonctionné, merci. Pourquoi ce composant ne fonctionne-t-il pas avec handleChange de Formik? Il est nécessaire de définir un propre
handleChange s'appuie sur e.target.name, qui en cas de datePicker ne fonctionne pas.
e.target sera toujours indéfini dans DatePicker
Intéressant. Merci
Voici la démo du bac à sable pour le même
https://codesandbox.io/s/formik-material-ui-date-picker-with-yup-validate-f3mdp
J'ai exécuté votre code mais je n'ai pas vu cette erreur. J'ai cependant vu d'autres types d'erreur avec
findDOMNode