Create a Controlled Input Problem

Tell us what’s happening:
I can’t type anything into the input box.

Your code so far


class ControlledInput extends React.Component {
constructor(props) {
  super(props);
  this.state = {
    input: ''
  };
  // Change code below this line
<input value = {this.state.input} onChange = {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 type='textarea' value='Enter text here'/>
      { /* 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/86.0.4240.75 Safari/537.36.

Challenge: Create a Controlled Input

Link to the challenge:

You should not define your form below the constructor, instead you should use this(optional if you want to directly use (bind) onChange):

class ControlledInput extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      input: ''
    };
    // Change code below this line
   this.handleChange = this.handleChange.bind(this); //optional - it is just cleaner writing it this way
    // 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)}/> // or use this.handleChange.bind(this)
        <h4>Controlled Input:</h4>
        <p>{this.state.input}</p>
      </div>
    );
  }
};

Thank you so much for your help, Rezathema! I was able to get it to work!