ReactJs: changement d'état en réponse à la modification de l'état de

J'ai une Réagir composant avec une entrée, et une option avancée "entrée":

[ basic ]
Hide Advanced...
[ advanced ]

L'avancée sur le fond disparaît si vous cliquez sur "Masquer les options Avancées", qui devient "mode Avancé". C'est simple et fonctionne très bien, il y a un showAdvanced clé dans l'etat qui contrôle le texte et que l'avancée d'entrée est rendu.

Externe code JS, cependant, pourrait changer la valeur de pointe, dans ce cas, je veux montrer l' [avancé] si elle est actuellement masquée et la valeur est différente de celle par défaut. L'utilisateur doit être en mesure de cliquer sur "Masquer Avancé" pour la fermer à nouveau, cependant.

Donc, quelqu'un d'extérieur appels cmp.setState({advanced: "20"}), et je veux montrer ensuite avancé; La plus simple chose à faire serait de mettre à jour showAdvanced dans mon état. Cependant, il ne semble pas être un moyen de mise à jour de l'état en réponse à d'autres modifications de l'état de Réagir. Je ne peux penser à un certain nombre de solutions à un problème légèrement différent, mais je veux vraiment avoir ce comportement spécifique.

Dois-je aller showAdvanced pour les accessoires, ne serait-ce logique? Pouvez-vous changer les accessoires en réponse à des modifications de l'état? Merci.

Réglage d'un état dépendant d'un autre état ne sonne comme un anti-modèle. Pourquoi ne pas vous suffit de cocher la advanced de l'état dans la méthode render?
Avez-vous un jsfiddle? Si je comprends bien, vous voulez contrôler la visibilité d'un élément à partir de l'intérieur de votre composant, mais également de l'extérieur? Donc, je voudrais juste utiliser un accessoire, et ont une condition if pour vérifier si oui ou non vous devez l'afficher.

OriginalL'auteur Emoses | 2014-09-12