[React] onKeyPress 이벤트 핸들링

겨레·2024년 11월 19일

[React] 리액트 스터디

목록 보기
29/95

키를 눌렀을 때 발생하는 KeyPress 이벤트를 처리하는 방법을 알아보자.


  • EventPractice_onKeyPress.jsx
    comment 인풋에서 Enter를 눌렀을 때 handleClick 메서드를 호출하도록 코드
import React, { Component } from 'react';

// 4.2.5 onKeyPress 이벤트 핸들링
class EventPractice_onKeyPress 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_onKeyPress;
// App.jsx
import React from 'react';
import EventPractice_onKeyPress from './features/4_EventHandling/EventPractice_onKeyPress';

const App = () => {
  return <EventPractice_onKeyPress />;
};

export default App;

두 번째 텍스트 인풋에서 텍스트를 입력하고 Enter를 눌렀을 때handleClick 메서드가 실행되는지 확인해보자.

profile
호떡 신문지에서 개발자로 환생

0개의 댓글