ref에 담기는 돔 요소가 어떤 돔 요소를 가리키는 걸까요?
7:45에서 ref={inputRef} 코드가 보이는데요,
console에 출력되는 input요소가 단순 모양만 같은 <input... > 인것인지, 아니면 현재 페이지의 input 요소인건지 궁금합니다.
만약 후자라면 똑같이 생긴 input 요소를 2개 만들어도 정확히 원하는 요소를 가리키겠지만, 전자라면 버그가 발생하지 않을까? 하는 생각이 들었어요.
그리고 만약 지금 name 말고 다른 input들도 유효성 검사를 하고 싶다면.. ref를 여러개 만들어야하나요??
질문이 너무 뒤섞여있네요 하하
답변 1
0
안녕하세요 이정환입니다.
ref.current가 가리키는 요소는 실제 DOM 요소입니다. 단순히 모양만 같은 <input>은 아닙니다. 현재 페이지의 input 요소라고 보시는게 정확할 것 같습니다. 따라서 버그가 발생할 가능성은 없다고 보셔도 괜찮을 것 같습니다.
추가로 여러개의 input을 관리하려면 기본적으로는 각각의 input마다 ref를 만들어 지정해주셔야 합니다. 그러나 이때 다음과 같이 ref를 객체 또는 배열 형태로 정의하면 하나의 ref에 여러개의 DOM을 지정하도록 할수도 있으니 참고하시면 좋을 것 같습니다.
import { useRef } from "react";
function App() {
const refs = useRef({});
const handleValidation = () => {
console.log("Name:", refs.current["name"].value);
console.log("Email:", refs.current["email"].value);
};
return (
<div>
<input
ref={(el) => (refs.current["name"] = el)}
type="text"
placeholder="Name"
/>
<input
ref={(el) => (refs.current["email"] = el)}
type="email"
placeholder="Email"
/>
<button onClick={handleValidation}>Validate</button>
</div>
);
}
useEffect와 lifecycle문의
0
26
2
프론트엔드 학습 수준 문의
0
37
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
47
2
데이터 로딩중 화면만 계속 나와요!!
0
54
2
퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요
0
79
2
이후의 커리큘럼 문의
0
102
2
실슬환경 설정에서 save후 console.log 부분이 새로고침이 안되는현상입니다.
0
50
2
최적화 관련 질문있습니다 (useMemo 등)
0
84
3
프로바이더 컴포넌트의 위치는 어떤 기준인가요?
1
81
3
Date 객체에 관련하여 질문드립니다.
0
84
2
리액트 개정판 교재 질문
0
60
2
예제코드가 안나와요!
0
78
2
select a variant 선택에서 javascript와 javascript+react compiler 중 무엇을 선택해야하나요? com
0
108
2
onMouseEnter 관련 문의 드립니다
0
91
3
배열의 렌더링 관련 질문 드립니다.
0
72
2
2:40초 refObj를 콘솔로 출력시 오류가 발생합니다.
0
112
2
TS, 리액트 강의중에 뭘 먼저 수강하는게 좋을까요?
0
134
2
useCallback 적용한 onCreate, onUpdate, onDelete 함수..
0
69
1
vs code 자동완성관련 문의
0
112
2
91강 useEffect내에서 상태변화함수 호출시 발생하는 에러
1
178
2
87강 필터 함수 질문
0
68
2
useRef, useState count 비교
0
67
2
안된다고했던 이유가 무엇이었는지 모르겠습니다
0
90
2
85강에서 객체를 왜 클래스로 만들어서 new 하지 않는건지 궁금합니다.
0
75
2





