Add Event Listeners issue

Add Event Listeners issue
0.0 0

#1

Tell us what’s happening:

what’s wrong in my code?

Your code so far


class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      message: ''
    };
    this.handleEnter = this.handleEnter.bind(this);
    this.handleKeyPress = this.handleKeyPress.bind(this);
  }
  // change code below this line
  componentDidMount() {
    docume
    nt.addEventListener();
  }
  componentWillUnmount() {
    document.removeEventListener();
  }
  // change code above this line
  handleEnter() {
    this.setState({
      message: this.state.message + 'You pressed the enter key! '
    });
  }
  handleKeyPress(event) {
    if (event.keyCode === 13) {
      this.handleEnter();
    }
  }
  render() {
    return (
      <div>
        <h1>{this.state.message}</h1>
      </div>
    );
  }
};

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/front-end-libraries/react/add-event-listeners


REACT: Add Event Listener
#2

You still have to write “keydown” and the callback handleKeyPress() inside document.addEventListener().

This will help. :slight_smile:
https://www.w3schools.com/jsref/met_document_addeventlistener.asp


#3

Did you come up with the solution? I’m struggling with this react section. I feel like there’s a lot missing in terms of examples.

edit: I got it. The event has to be “keydown”. Let me know if you didn’t get it.


#4

can you show me code?. thanks


#5

This is how the prop and callback should be.

document.addEventListener(“keydown”, this.handleKeyPress);