더북(TheBook)

4.2.5 onKeyPress 이벤트 핸들링

 

이번에는 키를 눌렀을 때 발생하는 KeyPress 이벤트를 처리하는 방법을 알아보겠습니다. comment 인풋에서 Enter를 눌렀을 때 handleClick 메서드를 호출하도록 코드를 작성해 봅시다.

EventPractice.js

import React, { Component } from ‘react’;

class EventPractice extends Component {

  state = {
    username: ‘’,
    message: ‘’
  }

  handleChange = (e) => {
    this.setState({
      [e.target.name]: e.target.value
    });
  }

  handleClick = () => {
    alert(this.state.username + ‘: ‘ + this.state.message);
    this.setState({
      username: ‘’,
      message: ‘’
    });
  }

  handleKeyPress = (e) => {
    if(e.key === ‘Enter’) {
      this.handleClick();
    }
  }

  render() {
    return (
      <div>
        <h1>이벤트 연습</h1>
        <input 
          type=”text”
          name=”username”
          placeholder=”유저명”
          value={this.state.username}
          onChange={this.handleChange}
        />
        <input 
          type=”text”
          name=”message”
          placeholder=”아무거나 입력해보세요”
          value={this.state.message}
          onChange={this.handleChange}
          onKeyPress={this.handleKeyPress}
        />
        <button onClick={this.handleClick}>확인</button>
      </div>
    );
  }
}

export default EventPractice;

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.