L'entrée ne change pas son texte. Il est pré-rempli à partir de la base de données. Par exemple, s'il est accompagné du texte : example, si j'appuie par exemple sur la touche s, la console enregistre examples mais dans le DOM in est toujours example. Voici le code handle :

handleChange = event => {
    this.setState({ [event.target.name]: event.target.value });
    console.log(event.target.name);
    console.log(event.target.value);
  };

Et le champ de saisie:

<input 
  type="text" 
  className="form-control" 
  name="note" 
  id=" note" 
  value={this.state.insurance.note} 
  onChange={this.handleChange}
/>

EDIT (résolution du problème de rendu, mais je n'obtiens pas les données que je veux lorsque je soumets le formulaire) Voici le code de mon formulaire :

handleSubmit = event => {
    event.preventDefault();
    var state = this.state;
    axios
      .put(`${API_URL}/` + state.id + `/update`, {
        tip: state.tip,
        date_exp: state.date_exp,
        date_notif: state.date_notif,
        note: state.note
      })
      .then(response => {
        console.log(response.data);
        // window.location = "/view";
      })
      .catch(error => {
        console.log(error);
      });
  }

Et mon bouton est un simple bouton d'envoi :

<button className="btn btn-success" type="submit">Save</button>
0
user11011546 18 mars 2019 à 15:44

2 réponses

Meilleure réponse

La réponse d'imjared est correcte : votre problème est dans la fonction handleChange, où vous mettez à jour l'état par erreur.
Cette fonction devrait ressembler à la suivante :

handleChange = event => {
    const insurance = Object.assign({}, this.state.insurance);
    insurance[event.target.name] = event.target.value;

    this.setState({insurance});
  };

Dans la première ligne de la fonction, vous créez une copie complète de l'objet actuel insurance enregistré dans l'état. Ensuite, vous mettez à jour l'objet copié et enfin mettez à jour l'état.

2
Jolly 18 mars 2019 à 12:52

Vous modifiez this.state.note en fonction de la propriété name de votre entrée, il est donc logique que this.state.insurance.note ne voit aucune mise à jour.

Si vous essayez console.logging this.state au-dessus de votre <input>, je parie que vous verrez ce que vous recherchez.

2
imjared 18 mars 2019 à 12:48