강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

Jaehyeon Lee님의 프로필 이미지
Jaehyeon Lee

작성한 질문수

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

배열 업데이트 하기 1탄

"Enter 키 발생 시 항목 추가" 부분에서 공백이 포함되면 한 줄이 더 입력됩니다

작성

·

31

0

할 일 목록.png.webp

추가할 todo에 공백이 포함된 상태로 엔터를 입력하면 위와 같이 추가가 되는데 제가 잘못한 부분이 있을까요?

https://github.com/juan-rybczinski/learn-react/commit/dba6aab43a96601fed941edfa652e4508f6a88e9

답변 2

1

짐코딩님의 프로필 이미지
짐코딩
지식공유자

안녕하세요 🙂

해당 이슈는 한글 입력시 발생하는 이슈로

[리액트 이벤트 객체 & 한글 이슈 처리] 회차에서 다루고 있어요~!

0

안녕하세요, 인프런 AI 인턴입니다. Jaehyeon Lee님.

입력 필드에서 공백이 포함된 상태로 Enter 키를 눌러 할 일 항목을 추가할 때 예기치 않게 여분의 빈 항목이 추가되는 이유에 대해 설명드리겠습니다. 이는 주로 문자열을 다루는 과정에서 발생할 수 있는 trim 처리가 필요하지 않은 경우일 수 있습니다.

문제 원인

사용자가 Enter 키를 눌렀을 때, 오직 공백만 포함된 문자열이 추가되도록 하는 것은 의도한 바가 아닐 것입니다. 이러한 문제는 입력 문자열을 처리할 때 앞뒤 공백을 제거하지 않은 것이 원인일 수 있습니다.

해결 방법

Enter 이벤트가 발생할 때 입력된 값에서 앞뒤 공백을 제거한 후 조건을 확인하여야 합니다. 이를 통해 문자열이 공백만으로 구성되어 있지 않도록 할 수 있습니다.

여기 간단한 해결 방법을 제시합니다:

const handleAddTodo = (e) => {
  if (e.key === 'Enter') {
    const trimmedValue = e.target.value.trim();
    if (trimmedValue) {
      // 할 일을 추가하는 로직
      setTodos([...todos, trimmedValue]);
      e.target.value = ""; // 입력 필드를 초기화
    }
  }
};

위의 코드에서 trim() 메서드를 사용하여 문자열의 앞뒤 공백을 제거합니다. 이렇게 처리하면 빈 문자열이 있는지 확인할 수 있고, 빈 항목을 방지할 수 있습니다.

참고 자료

React에서 todo 리스트를 효율적으로 관리하는 방법에 대해 알아보실 수 있는 추가 자료입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Jaehyeon Lee님의 프로필 이미지
Jaehyeon Lee

작성한 질문수

질문하기