FormEvent가 deprecated 되었다고 합니다.
293
작성자 없음
작성한 질문수 0
FormEvent는 deprecated 되고 SubmitEvent를 사용하는 것으로 권장된다고 합니다.
그런데 (e: SubmitEvent<HTMLFormElement>) 방식은 FormEvent가 제네릭을 지원하지 않아서 안 된다고 하고 (e: SubmitEventHandler<HTMLFormElement>) 처럼 시도해도 빨간줄이 자꾸 뜹니다.
여기저기 알아보고 const handleSubmit: SubmitEventHandler<HTMLFormElement> = (e) => { ... } 로 하면 된다는데 이들의 차이점과 FormEvent를 사용할 때 처럼 사용하면 안 되는 이유가 궁금합니다.
답변 2
0
안녕하세요!
해당 영상은 촬영 시점이 비교적 최근임에도 불구하고,
그 사이(26.1.26일)에 FormEvent가 deprecated 처리되었네요… 😂
deprecated된 이유는 인프런 AI 인턴이 남긴 설명과 동일하니,
해당 내용을 참고해주시면 좋을 것 같습니다.
앞으로는 아래와 같이 사용해주시면 됩니다.
SubmitEvent<HTMLFormElement>감사합니다
0
안녕하세요, 인프런 AI 인턴입니다. hwnii님.
FormEvent와 관련하여 발생한 지침 변경에 대해 말씀드리겠습니다. 최신 업데이트에 따르면, FormEvent는 더 이상 사용되지 않고 SubmitEvent로 대체되도록 권장되고 있습니다. 아래에서 차이점과 사용 방법에 대해 간단히 설명 드리겠습니다.
FormEvent vs SubmitEvent
FormEvent:
- 전통적으로 React에서 폼 제출 시 사용되던 이벤트 타입입니다.
- 주로
onSubmit이벤트 핸들링 시 사용되어 왔습니다.
- 전통적으로 React에서 폼 제출 시 사용되던 이벤트 타입입니다.
SubmitEvent:
- 최신 웹 표준에 따라 특정으로 폼 제출을 다루기 위해
SubmitEvent로 대체되고 있습니다.
SubmitEvent는 기본적으로Event인터페이스를 확장하여 좀 더 특화된 기능을 제공할 수 있습니다.
- 최신 웹 표준에 따라 특정으로 폼 제출을 다루기 위해
이유 및 차이점
SubmitEvent: 더 구체적인 인터페이스이며, 기존Event에서 확장되어 사용 가능한 기능이 추가될 수 있는 여지를 남깁니다. 따라서 앞으로의 호환성 및 추가 기능을 고려할 때SubmitEvent로 전환하는 것이 좋습니다.
사용 예시
아래는 SubmitEvent를 사용하여 폼 제출 이벤트를 관리하는 기본적인 코드 예시입니다:
import React from 'react';
const MyComponent = () => {
const handleSubmit = (e: React.FormEvent<HTMLFormElement> | SubmitEvent) => {
e.preventDefault();
// 폼 제출 처리 로직
};
return (
<form onSubmit={handleSubmit}>
<button type="submit">제출</button>
</form>
);
};
export default MyComponent;
위 코드에서 SubmitEvent를 사용할 때, 먼저 브라우저 환경에서 지원되고 있는지도 확인하셔야 합니다. React 코드에서 SubmitEvent를 지원하려면 타입 시스템 등 관련 설정이 제대로 되어 있어야 합니다.
관련해서 추가적으로 이와 관련된 인터페이스 사용법 을 제공하오니 참고하시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
ll- al 명령어 관련 문의
0
16
1
cursor ui 변경 문의
0
13
1
상태 표시줄 설치 오류
0
18
1
디바이스 별 다른 크기의 화면을 고려하는 반응형UI
0
12
2
API 400알람 관련문의
0
24
2
사이트가 너무 달라요
0
48
2
next.js 설치
0
17
1
미션 제출하는 곳
0
18
1
답변이 다른 문제..
0
17
1
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
38
1
lucide react 아이콘 설치
0
50
2
02-04 layout.tsx 구조가 달라요
0
66
2
10-6 실습 할 수 없습니다..
0
86
1
그림 예제는 따로 제공이 안되나요?
0
81
1
cacheLife에 대한 질문입니다
0
71
1
(제보) 쿠키를 브라우저 개발 환경에서 직접 삽입했을 때 나오지 않는 현상
0
73
2
디스코드 채널 초대 링크
0
73
1
revalidatePath 질문 있습니다.
0
67
2
MainLayout이 중첩되어 뜨는 문제
0
83
2
쿠키와 헤더
0
66
2
구지 react를 사용하는 이유가 그럼 있는가?
0
85
1
터보백이 안보입니다
0
70
2
젯브레인 웹스톰(jetbrains webstorm) 사용하시는 분들 참고
0
119
2
소스 코드 다운로드는 어디서 하나요.
0
81
2





