Estoy dando mi primer paso en ReactJS e intento entender la comunicación entre padres e hijos. Estoy formando, así que tengo el componente para los campos de estilo. Y también tengo un componente principal que incluye el campo y verificarlo. Ejemplo:
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!
}
})
Hay alguna forma de hacerlo. ¿Y mi lógica es buena en reaccionar "mundo"? Gracias por tu tiempo.
fuente

<Child value={this.state.value} onChange={this.changeHandler.bind(this)} />React.createClasscual enlaza automáticamente todos los métodos de componentes. Si estaba usando las clases React es6, entonces necesitarías vincularlo (a menos que estuvieras auto-vinculante en el constructor, que es lo que mucha gente está haciendo en estos días para solucionar esto).binddevuelve una nueva función, por lo que básicamente está creando una nueva función cada vez que ejecuta render. Probablemente esto esté bien, pero si vincula el constructor, solo lo hará una vez por método de componente en la instanciación en lugar de cada render. Es muy difícil ... ¡pero técnicamente más agradable, supongo!Puede usar cualquier método principal. Para esto, debe enviar estos métodos de su padre a su hijo como cualquier valor simple. Y puede usar muchos métodos de los padres al mismo tiempo. Por ejemplo:
Y úselo en el Niño de esta manera (para cualquier acción o en cualquier método hijo):
fuente
this.propsla devolución de llamadaundefined.this)Actualización de 2019 con react 16+ y ES6
Publicar esto ya que
React.createClassestá en desuso desde la versión 16 de react y el nuevo Javascript ES6 le dará más beneficios.Padre
Niño
Niño sin estado simplificado como constante ES6
fuente
Pase el método desde el
Parentcomponente hacia abajo comopropa suChildcomponente. es decir:fuente
Usando la función || componente sin estado
Componente principal
Componente hijo
fuente
Reaccionar 16+
Componente hijo
Componente principal
fuente