Tell us what’s happening:
I’ve solved this challenge with no issue, but am having some trouble understanding how it works.
Here’s my (obviously incorrect) understanding of how this works:
this.state.input is set to a blank string …
the input’s “value” attribute is set to this.state.input (which is a blank string by default) …
when there’s a change (onChange) then call the handleChange method …
the handleChange method then updates this.state.input to be equal to the input’s “value” attribute …
My point is that I don’t understand where the program is getting the data for what’s typed in the box from. Which part of the program is accessing that data?
Thank you in advance
**Your code so far**
class ControlledInput extends React.Component {
constructor(props) {
super(props);
this.state = {
input: ''
};
// Change code below this line
this.handleChange = this.handleChange.bind(this)
// Change code above this line
}
// Change code below this line
handleChange(event) {
this.setState({
input: event.target.value
});
}
// Change code above this line
render() {
return (
<div>
{ /* Change code below this line */}
<input value={this.state.input} onChange={this.handleChange}/>
{ /* Change code above this line */}
<h4>Controlled Input:</h4>
<p>{this.state.input}</p>
</div>
);
}
};
**Your browser information:**
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
Challenge: Create a Controlled Input
Link to the challenge: