React.js comment passer des rappels à l'enfant composants?
Je tiens à passer un rappel à un doublement imbriquée composant, et alors que je suis en mesure de transmettre les propriétés effectivement, je ne vois pas comment lier le rappel à la bonne composante de sorte qu'il est déclenché. Ma structure ressemble à ceci:
-OutermostComponent
-FirstNestedComponent
-SecondNestedComponent
-DynamicallyGeneratedListItems
Les Éléments de la Liste lorsque l'utilisateur clique dessus devrait déclencher un rappel qui est le OutermostComponents méthode "onUserInput", mais à la place j'ai "Erreur non Interceptée: Undefined n'est pas une fonction". Je soupçonne que le problème est dans la façon dont je me suis rendu le SecondNestedComponent à l'intérieur de la première, et en passant la fonction de rappel. Le code ressemble à ceci:
var OutermostComponent = React.createClass({
onUserInput: //my function,
render: function() {
return (
<div>
//other components
<FirstNestedComponent
onUserInput={this.onUserInput}
/>
</div>
);
}
});
var FirstNestedComponent = React.createClass({
render: function() {
return (
<div>
//other components
<SecondNestedComponent
onUserInput={this.onUserInput}
/>
</div>
);
}
});
var SecondNestedComponent = React.createClass({
render: function() {
var items = [];
this.props.someprop.forEach(function(myprop) {
items.push(<DynamicallyGeneratedListItems myprop={myprop} onUserInput={this.props.onUserInput}/>);}, this);
return (
<ul>
{items}
</ul>
);
}
});
Comment puis-je lier correctement les rappels à l'appropriés composants imbriqués?
Vous devez vous connecter pour publier un commentaire.
Vous êtes de passage à
this.onUserInput
comme une propriété àFirstNestedComponent
. Par conséquent, vous devez accéder àFirstNestedComponent
commethis.props.onUserInput
.props
à des composants enfants. Techniquement rappels encore se conformer à l'Réagissent idées™ de unidirectionnel de flux de données, car le contexte est le parent (pas da de l'enfant)Pour votre référence, veuillez vérifier la mise en œuvre que j'ai créé à jsfiddle.net/kb3gN/12007