Я хочу сделать поиск в реальном времени в React. Как я могу поднять сообщение от ребенка к родителю? Или как я могу передать родительский обработчик детям через реквизиты для обработки события?
родительский класс:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
activities: activities,
filteredActivities: activities,
};
this.handleSearchChange = this.handleSearchChange.bind(this);
}
filterActivity = searchText => {
return this.state.activities
.filter(activity => {
if(activity.content.toLowerCase().includes(
searchText.toLowerCase())
){
return true;
}
return false;
});
}
handleSearchChange = event => {
this.setState({
filteredActivities: this.filterActivity(event.target.value)
});
};
render() {
const filteredActivities = this.props.filteredActivities;
return(
<div className="notificationsFrame">
<div className="panel">
<Header name={this.props.name} />
<SearchBar onChange={this.handleSearchChange} />
<Content activities={this.state.filteredActivities} />
</div>
</div>
);
}
}
Дочерний класс:
class SearchBar extends React.Component {
onChangeHandler = event => {
console.log(event.target.value);
}
render() {
return (
<div className="search-bar" >
<input type="text" onChange={this.onChangeHandler} />
</div>
);
}
}
Я хочу передать значение event.target.value для handleSearchChange. если я добавлю код класса Searchbar в класс App, я смогу выполнить поиск в реальном времени очень хорошо. Но я не могу поместить их в два компонента. Я хочу сделать их на две составляющие. Большое спасибо.