0
votes

Raccourcir plusieurs lignes de code d'instate dans réagir

Cette question est juste dans le but d'améliorer mes codes dans la réaction qui semble actuellement très sale et illisible. J'ai 10-15 formulaires champs qui ont mis à jour une fois que j'ai obtenu des valeurs d'API.

Voici le code à partir de laquelle je l'ai fait, P>

            this.setState({smtpServer:res.data.data[0].smtpServer});
            this.setState({senderName:res.data.data[0].senderName});
            this.setState({senderEmail:res.data.data[0].senderEmail});
            this.setState({smtpPorts:res.data.data[0].smtpPort});
            this.setState({username:res.data.data[0].username});
            this.setState({password:res.data.data[0].password});
            this.setState({authType:res.data.data[0].authType});


1 commentaires

Merci de me garder posté. Je demanderai que c'est le canal respectif.


5 Réponses :


0
votes

En supposant que ces appels se produisent en séquence, il pourrait être écrit comme xxx


0 commentaires

1
votes

Vous pouvez déstructurer les données et utiliser un seul SetState avec une affectation d'objet sténo-shorth ( IE Les touches sont nommées les mêmes que les variables ) xxx

ou, si res.data.data [0] a toutes les propriétés que vous souhaitez stocker dans l'état, plus succinctement xxx

< a href = "https://codesandbox.io/s/brafre-darkness-svoyb?expanddevtools=1&fonttsize=14&hidenavigation=1&module=%2fsrc%2fapp.js&theme=dark" rel = "Nofollow Noreferrer">  Résultat Édition Spread to State Updater


0 commentaires

0
votes

Vous pouvez les raccourcir en l'adaptant à un seul état d'objet à l'aide de SSTATE. Essayez d'abord de déstructurer votre res.data.data [0] objet afin de gérer les attributs individuels mieux: xxx

suivant Vous pouvez définir l'état dans un objet géant avec chaque attributs. ES6 permet à JavaScript d'utiliser la clé uniquement au lieu des paires de la valeur de clé lorsque la clé et la valeur ont le même nom. Ainsi: const objname = {nom d'utilisateur: nom d'utilisateur, mot de passe: mot de passe} peut également être saisi comme const objname = {nom d'utilisateur, mot de passe} Par cette logique, vous ne pouvez que définir comme suit: xxx

espère que cela aide cela aide.


0 commentaires

0
votes

ou s'il n'y a rien d'autre dans cet objet, vous pouvez simplement faire simplement

this.setState({ data: res.data.data[0] });


0 commentaires

0
votes

Il peut être atteint de manière très simple comme ci-dessous:

  1. Vous pouvez prendre ces données dans une variable, puis vous pouvez l'affecter dans l'état.

    const données = res.data.data [0];

    this.setstate ({... Data});

  2. Vous pouvez l'affecter directement sans utiliser une variable supplémentaire.

    this.setstate ({... res.data.data [0]});


0 commentaires