Я делаю свой первый шаг в ReactJS и пытаюсь понять общение между родителями и детьми. Я делаю форму, поэтому у меня есть компонент для оформления полей. А также у меня есть родительский компонент, который включает поле и проверяет его. Пример:
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!
}
})
Есть ли способ сделать это. И хороша ли моя логика в "мире" реагирования? Спасибо за ваше время.
источник
<Child value={this.state.value} onChange={this.changeHandler.bind(this)} />
React.createClass
который автоматически связывает все методы компонентов. Если бы я использовал классы React es6, вам нужно было бы связать его (если вы не использовали автоматическое связывание в конструкторе, что многие люди делают в эти дни, чтобы обойти это).bind
возвращает новую функцию, поэтому в основном вы создаете новую функцию каждый раз, когда запускаете рендер. Это, вероятно, хорошо, но если вы связываете в конструкторе, то вы делаете это только один раз для метода компонента при создании экземпляра, а не при каждом рендеринге. Это придирки ... но технически лучше, я думаю!Вы можете использовать любые родительские методы. Для этого вам следует отправить этот метод от вашего родителя к вашему ребенку, как любое простое значение. И вы можете использовать много методов от родителя одновременно. Например:
И используйте его в Child следующим образом (для любых действий или для любых дочерних методов):
источник
this.props
в обратном вызове становитсяundefined
.this
)2019 Обновление с реакцией 16+ и ES6
Публикация этого сообщения
React.createClass
исключена из версии 16 реагирования, а новый Javascript ES6 даст вам больше преимуществ.родитель
ребенок
Упрощенный ребенок без гражданства как константа ES6
источник
Передайте метод от
Parent
компонента вниз какprop
к вашемуChild
компоненту. то есть:источник
Используя функцию || компонент без состояния
Родительский компонент
Дочерний компонент
источник
Реакция 16+
Дочерний компонент
Родительский компонент
источник