React에서 상위 구성 요소의 하위 구성 요소 입력에 초점을 맞추는 방법
프로젝트 설정
다음 명령을 실행하여 반응 프로젝트를 생성합니다.
npx create-react-app react-focus-child
다음 스타일로
index.css
를 업데이트합니다.body {
margin: 1rem auto;
display: flex;
justify-content: center;
max-width: 800px;
}
.App {
display: flex;
flex-direction: column;
justify-content: center;
}
button {
margin-bottom: 1rem;
}
자식 구성 요소 만들기
이제 입력 상자가 있는 하위 구성 요소를 만듭니다.
import React from "react"
const ChildComp = () => {
return (
<div>
<input />
</div>
)
}
export default ChildComp
ref를 생성하고 자식에게 전달하기
하위 입력 상자를 참조하기 위해 useRef hook을 사용할 것입니다.
이제 상위 구성 요소에서 참조를 생성해 보겠습니다.
import { useRef } from "react"
import ChildComp from "./ChildComp"
function App() {
const childInputRef = useRef(null)
return (
<div className="App">
<ChildComp childInputRef={childInputRef} />
</div>
)
}
export default App
하위 구성 요소에서 전달된 prop을 수신하고 입력 요소로 설정해야 합니다.
import React from "react"
const ChildComp = ({ childInputRef }) => {
return (
<div>
<input ref={childInputRef} />
</div>
)
}
export default ChildComp
하위 입력에 초점 맞추기
이제 부모 구성 요소에서 버튼을 만들고
onClick
처리기를 추가하고 입력에 초점을 맞추겠습니다.import { useRef } from "react"
import ChildComp from "./ChildComp"
function App() {
const childInputRef = useRef(null)
const focusChild = () => {
childInputRef.current && childInputRef.current.focus()
}
return (
<div className="App">
<button onClick={focusChild}>Focus child</button>
<ChildComp childInputRef={childInputRef} />
</div>
)
}
export default App
이제 응용 프로그램을 테스트하면 상위 구성 요소의 버튼을 클릭할 때 입력에 포커스가 있는 것을 볼 수 있습니다.
소스 코드 및 데모
소스 코드here를 다운로드하고 데모here를 볼 수 있습니다.
Reference
이 문제에 관하여(React에서 상위 구성 요소의 하위 구성 요소 입력에 초점을 맞추는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/collegewap/how-to-focus-a-child-component-input-from-parent-component-in-react-229o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)