Tell us what’s happening:
Hello people,
I checked the hint on this one because I didn’t come up with the idea to set input to empty string, and set submit equal to this.state.input. Even though it was written in the task description, I don’t understand why set submit equal to input , I mean those are two different properties, isn’t it convoluted to make them the same?
And if the user enters the value, which then gets passed to state, after submitting we are setting that input equal to nothing? That’s totally baffling to me. Why do that?
Your code so far
class MyForm extends React.Component {
constructor(props) {
super(props);
this.state = {
input: '',
submit: ''
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({
input: event.target.value
});
}
handleSubmit(event) {
// change code below this line
event.preventDefault();
this.setState({
input: '',
submit: this.state.input
})
// change code above this line
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
{ /* change code below this line */ }
<input value={this.state.input} onChange={this.handleChange}/>
{ /* change code above this line */ }
<button type='submit'>Submit!</button>
</form>
{ /* change code below this line */ }
<h1>{this.state.submit}</h1>
{ /* change code above this line */ }
</div>
);
}
};
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
.
Challenge: Create a Controlled Form
Link to the challenge:
https://www.freecodecamp.org/learn/front-end-libraries/react/create-a-controlled-form