J'ai une longue liste d'affichage de données divisée en blocs avec un bouton d'édition à côté de chaque bloc, comme ceci:
Chaque fois que le bouton d'édition est cliqué, je dois remplacer le composant d'affichage par le composant d'édition, en remplaçant le texte par la forme, comme ceci
quel serait le meilleur moyen de faire cela . J'ai essayé de mettre les composants à l'intérieur de l'état en tant que liste et de remplacer le composant d'affichage par le composant de formulaire, lorsque vous cliquez sur Modifierso au lieu de le retourner depuis render ():
return(
<Display />
);
Maintenant je reviens:
return(
{this.state.components[0]}
);
et quand le bouton est cliqué faisant ceci
this.setState({components:[<EditForm />]})
Cela fonctionne mais je me demandais si entreposer Component et JSX inside était une bonne idée/une pratique professionnelle?
Mieux, vous pouvez utiliser des instructions conditionnelles pour afficher les composants masqués en fonction de vos besoins.
Exemple: 1) Conservez le mode (i.e) du composant à afficher pour masquer les zones de saisie 2) Cliquez sur le bouton pour changer le statut en vrai ou en faux 3) Il affichera/masquera
Bonne codage!
Je tiens à l'état juste un booléen pour montrer le formulaire d'édition ou l'affichage et basculer ceci sur le clic de bouton.
Ensuite, dans votre méthode de rendu, il suffit d’une instruction if simple pour choisir le rendu, par exemple.
render() {
if (this.state.edit) return <EditForm />
return <Display />
}