Child Parent communication
Example for medium article
by nabendu
HTML
<div id="app"></div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
li {
margin: 8px 0;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
.done {
color: rgba(0, 0, 0, 0.3);
text-decoration: line-through;
}
input {
margin-right: 5px;
}
React
class App extends React.Component {
onSearchSubmit(term) {
console.log(term);
}
render() {
return (
<div>
<h2>Child Parent communication Demo:</h2>
<SearchComponent userSubmit={this.onSearchSubmit} />
</div>
)
}
}
class SearchComponent extends React.Component {
state = {val: ''};
onInputChange = (event) => {
this.setState({ val: event.target.value })
}
onFormSubmit = (event) => {
event.preventDefault();
this.props.userSubmit(this.state.val);
}
render() {
return (
<div>
<label>Search Box </label>
<form onSubmit={this.onFormSubmit}>
<input type="text"
value={this.state.val}
onChange={this.onInputChange}
/>
</form>
</div>
)
}
}
ReactDOM.render(<App />, document.querySelector("#app"))