- Supposons que j'ai une classe React P, qui rend deux classes enfants, C1 et C2.
- C1 contient un champ de saisie. Je ferai référence à ce champ de saisie comme Foo.
- Mon objectif est de laisser C2 réagir aux changements de Foo.
J'ai trouvé deux solutions, mais aucune d'elles ne semble tout à fait correcte.
Première solution:
- Assigner un état P, state.input.
- Créez une onChangefonction dans P, qui prend un événement et définitstate.input.
- Passez ceci onChangeà C1 en tant que aprops, et laissez C1 se lierthis.props.onChangeauonChangede Foo.
Cela marche. Chaque fois que la valeur de Foo change, il déclenche a setStatedans P, donc P aura l'entrée pour passer à C2.
Mais cela ne me semble pas tout à fait correct pour la même raison: je définis l'état d'un élément parent à partir d'un élément enfant. Cela semble trahir le principe de conception de React: un flux de données unidirectionnel. 
Est-ce ainsi que je suis censé le faire, ou y a-t-il une solution plus naturelle de React?
Deuxième solution:
Mettez simplement Foo dans P.
Mais est-ce un principe de conception que je devrais suivre lorsque je structure mon application, en plaçant tous les éléments du formulaire dans la renderclasse de niveau le plus élevé?
Comme dans mon exemple, si j'ai un grand rendu de C1, je ne veux vraiment pas mettre l'ensemble renderde C1 à renderde P simplement parce que C1 a un élément de formulaire.
Comment dois-je le faire?