Tell us what’s happening:
After carefully reading the instructions I found the solution but am still a bit confused on the logic behind the coding.
When I type in the UI text field:
- the event handler onChange triggers the class method handleChange()
- handleChange() updates the component state property input
- and the
element inherits the updated input property
The part where I’m confused is the input text field on the UI. The exercise states that the ’ The component state
is the single source of truth regarding the input data’.
Every time I type in the text field the component state is updated. Is the input field inheriting from the component state? It all seems a bit circular.
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/71.0.3578.98 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/front-end-libraries/react/create-a-controlled-input/