1
votes

React material-ui KeyboardDatePicker et Formik ne fonctionnent pas

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


1 commentaires

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


3 Réponses :


0
votes

Changez simplement la fonction onChange comme ceci :

onChange={(name, value) => formik.handleChange('dob', value)}


1 commentaires

le bac à sable de code ne fonctionne pas. Le changement de date ne change pas dans le sélecteur de date



3
votes

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.


4 commentaires

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



1
votes

0 commentaires