React - Create a Controlled Input

React - Create a Controlled Input
0.0 0

#1

Tell us what’s happening:
They give me X and say: Typing in the input element should update the state and the value of the input, and the p element should render this state as you type.

also, in console give me error: Cannot read property 'setState' of undefined

I check my code and all my code is right, please i need explanation and solution both of them and thank you for help.

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.setState({input:event.target.value});
  }
  // change code above this line
  render() {
    return (
      <div>
        { /* change code below this line */}
        <input type="text" value={this.state.input} onChange={this.handleChange} />
        { /* change code above this line */}
        <h4>Controlled Input:</h4>
        <p>{this.state.input}</p>
      </div>
    );
  }
};

Picture

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/front-end-libraries/react/create-a-controlled-input/


#2

Hi all,

I’ve know the problem is in handleChange()method, I should write this.setState({}) not event.setState({}) also the parameter event that i give it to input, i forget to put the parameter event in method like this handleChange(event){}

Solving the problem like this:

handleChange(event){
    this.setState({input:event.target.value});
  }

Sometimes you lose your concentration, you should go some exercise and active will back again.
Good luck to everyone.

Regards,
Ali Mosaad