Как передать значение от родительского компонента к дочернему компоненту (react)



Я новичок в изучении React и пытаюсь передать значение, которое я получаю от пользовательского ввода внутри моего ParentComponent (через поле ввода) в его ChildComponent - которое я буду использовать для запуска вызова AJAX.



Я думал, что путем замены состояния в ParentComponent будет работать-но я все еще не в состоянии схватить его в ChildComponent.



Я также хочу, чтобы ChildComponent запускался/визуализировался только после получения входного значения от ParentComponent (чтобы я мог выполнить вызов AJAX, а затем оказывать...).



Какие-нибудь советы?



var ParentComponent = React.createClass({
getInitialState: function() {
return {data: []};
},

handleSearch: function(event) {
event.preventDefault();
var userInput = $('#userInput').val();
this.replaceState({data: userInput});
},

render: function() {
return (
<div>
<form>
<input type="text" id="userInput"></input>
<button onClick={this.handleSearch}>Search</button>
</form>
<ChildComponent />
{this.props.children}
</div>
);
}
});

var ChildComponent = React.createClass({
render: function() {
return <div> User's Input: {this.state.data} </div>
}
});
623   1  

1 ответ:

Вы должны передать родительское состояние как опору своему ребенку: измените дочерний компонент внутри родительского рендеринга на:

<ChildComponent foo={this.state.data} />

И затем вы можете получить доступ к нему внутри ChildComponent через this.props.foo.

Пояснение: внутри дочернего компонента, this.state.someData относится к состоянию дочернего компонента. А у вашего ребенка нет государства. (Что, кстати, прекрасно)

Также: this.setState(), вероятно, лучше, чем this.replaceState().

И лучше инициализировать родительское состояние с помощью

return { data : null };

Comments

    Ничего не найдено.