Je fais mon premier pas dans ReactJS et j'essaie de comprendre la communication entre les parents et les enfants. Je crée un formulaire, j'ai donc le composant pour styliser les champs. Et aussi j'ai un composant parent qui inclut le champ et le vérifie. Exemple:
var LoginField = React.createClass({
render: function() {
return (
<MyField icon="user_icon" placeholder="Nickname" />
);
},
check: function () {
console.log ("aakmslkanslkc");
}
})
var MyField = React.createClass({
render: function() {
...
},
handleChange: function(event) {
//call parent!
}
})
Y a-t-il un moyen de le faire. Et ma logique est-elle bonne dans reactjs "world"? Merci pour votre temps.
la source
<Child value={this.state.value} onChange={this.changeHandler.bind(this)} />
React.createClass
quelle auto lie toutes les méthodes de composants. Si j'utilisais les classes React es6, vous auriez besoin de le lier (à moins que vous n'ayez une liaison automatique dans le constructeur, ce que beaucoup de gens font ces jours-ci pour contourner cela).bind
renvoyer une nouvelle fonction, vous créez donc une nouvelle fonction à chaque fois que vous exécutez le rendu. C'est probablement bien, mais si vous liez dans le constructeur, vous ne le faites qu'une fois par méthode de composant à l'instanciation plutôt qu'à chaque rendu. C'est difficile ... mais techniquement plus agréable je suppose!Vous pouvez utiliser n'importe quelle méthode parent. Pour cela, vous devez envoyer ces méthodes de votre parent à votre enfant comme n'importe quelle valeur simple. Et vous pouvez utiliser plusieurs méthodes du parent à la fois. Par exemple:
Et utilisez-le dans l'enfant comme ceci (pour toute action ou dans toute méthode enfant):
la source
this.props
le rappel devientundefined
.this
)Mise à jour 2019 avec react 16+ et ES6
Publier ceci depuis
React.createClass
est obsolète depuis la version 16 de react et le nouveau Javascript ES6 vous donnera plus d'avantages.Parent
Enfant
Enfant apatride simplifié comme constante ES6
la source
Passez la méthode du
Parent
composant vers le bas comme unprop
à votreChild
composant. c'est à dire:la source
Utilisation de la fonction || composant sans état
Composant parent
Composant enfant
la source
Réagir 16+
Composant enfant
Composant parent
la source