Estou dando o primeiro passo no ReactJS e tentando entender a comunicação entre pais e filhos. Como estou criando um formulário, tenho o componente para estilizar campos. E também tenho componente pai que inclui campo e verificá-lo. Exemplo:
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!
}
})
Há alguma forma de fazer isso. E minha lógica é boa no "mundo" do reactjs? Obrigado pelo seu tempo.
fonte
<Child value={this.state.value} onChange={this.changeHandler.bind(this)} />
React.createClass
qual auto vincula todos os métodos de componentes. Se eu estava usando Reagir aulas ES6 então você precisa vinculá-lo (a menos que você estava no construtor de ligação automática que é o que um monte de pessoas estão fazendo estes dias para contornar esta situação).bind
retornar uma nova função, então basicamente você está criando uma nova função toda vez que executa a renderização. Isso provavelmente é bom, mas se você ligar o construtor, estará fazendo isso apenas uma vez por método de componente na instanciação, em vez de em cada renderização. É uma escolha de nit ... mas tecnicamente melhor, eu acho!Você pode usar qualquer método pai. Para isso, você deve enviar esses métodos do seu pai para o seu filho como qualquer valor simples. E você pode usar muitos métodos dos pais ao mesmo tempo. Por exemplo:
E use-o no Child desta forma (para qualquer ação ou método filho):
fonte
this.props
no retorno de chamada se tornaundefined
.this
)Atualização de 2019 com react 16+ e ES6
A publicação desta publicação
React.createClass
foi descontinuada da versão de reação 16 e o novo Javascript ES6 oferecerá mais benefícios.Pai
Criança
Filho apátrida simplificado como constante ES6
fonte
Passe o método do
Parent
componente para baixo como umprop
para o seuChild
componente. ou seja:fonte
Usando a função || componente sem estado
Componente pai
Componente filho
fonte
Reagir 16+
Componente filho
Componente pai
fonte