
π μλ‘
μλ
νμΈμ! μ€λμ React Hook Form κ³Ό useRef μ μ‘°ν©μ ν΅ν΄ νΉμ input μμμ μ§μ μ κ·Όνλ λ°©λ²μ λν΄ κ³΅μ νκ³ μ ν©λλ€.
μ΅κ·Ό κ²μν νλ‘μ νΈμμ κ²μκΈμ μ΄ λ λκΈ μμ±μ νλμ μλμΌλ‘ ν¬μ»€μ€λ₯Ό μ£Όκ³ μΆμλλ° React Hook Form λμ
μμ μ΄λ₯Ό ꡬννλλ° μ΄λ €μμ κ²ͺμμ΅λλ€. μ΄μ λν λ΄μ©κ³Ό ν΄κ²°λ°©λ²μ 곡μ ν©λλ€.
π€ λ¬Έμ μν© μ ref={commentAuthorInputRef} λ‘λ λμνμ§ μμκΉ?
React Hook Form μ μ¬μ©ν λ, μ£Όμ κΈ°λ₯ μ€ νλλ register ν¨μμ λλ€. μ΄ ν¨μλ input νλλ₯Ό κ΄λ¦¬νκ³ , μ ν¨μ± κ²μ¬λ νΌ μ μΆ λ±μ λ€μν κΈ°λ₯μ μ 곡ν©λλ€. μ κ° μ²μμ μ¬μ©ν λ°©μμ μλμ κ°μμ΅λλ€.
const commentAuthorInputRef = useRef(null)
...
useEffect(() => {
commentAuthorInputRef.current.focus();
}, []);
...
<input ref={commentAuthorInputRef} ... />
κ·Έλ°λ°, μμ κ°μ λ°©μμΌλ‘ ꡬννλ©΄ React Hook Form μ register μ ref μ λμμ μ°κ²°λμ§ μμ, μ
λ ₯ κ°μ΄ undefined λ‘ λ°νλλ λ¬Έμ κ° λ°μνμ΅λλ€.
register ν¨μλ input νλλ₯Ό λ±λ‘νλ©΄μ ν΄λΉ νλμ μ°Έμ‘° ref λ₯Ό λ΄λΆμ μΌλ‘ κ΄λ¦¬ν©λλ€. κ·Έλ κΈ° λλ¬Έμ, μΈλΆμμ λ³λμ ref λ₯Ό μ°κ²°ν λλ register μμ μ°λμ΄ μ€μ²©λ μ μμ΅λλ€. μ΄ λλ¬Έμ, λ΄λΆμ μΌλ‘ νΌ κ°μ μν κ΄λ¦¬λ μ ν¨μ± κ²μ¬μ κ°μ κΈ°λ₯λ€μ΄ μ λλ‘ λμνμ§ μκ² λ©λλ€.
π ν΄κ²½ λ°©λ²: ref λ₯Ό ν¨μλ‘ μ μνκΈ°
React Hook Form μ register ν¨μλ ref μ ν¨κ» κ°μ²΄λ₯Ό λ°νν©λλ€. μ΄λ₯Ό μ λ ₯ μμμ μ°κ²°νλ©΄μ λμμ μΈλΆ ref μλ μ°κ²°ν΄μΌ νκΈ° λλ¬Έμ, ν¨μλ₯Ό μ¬μ©νμ¬ μ΄λ₯Ό ν΄κ²°ν΄μΌ ν©λλ€.
<input
{...commentRegister('author', {
required: 'λκΈ μμ±μλ νμ μ
λ ₯μ
λλ€.'
})}
ref={(e) => {
commentRegister('author').ref(e); // react-hook-form μ μν ref
commentAuthorInputRef.current = e; // μΈλΆ ref
}}
...
/>
μ μ½λμμ μ€μν μ μ ref ν¨μκ° λ κ°μ§ μ°κ²° μμ
μ λμμ μννλ€λ κ²μ
λλ€.
1. React Hook Form μ ref μ μμ(HTMLInputElement)λ₯Ό μ°κ²°
2. μΈλΆ refμλ λμΌν μμ(HTMLInputElement)λ₯Ό μ°κ²°
μ΄λ₯Ό ν΅ν΄ React Hook Form μ κΈ°λ₯μ κ·Έλλ‘ νμ©νλ©΄μλ, μΈλΆμμλ input μμμ μ κ·Όν μ μκ²λμμ΅λλ€.π€
π¬ κ²°λ‘
React Hook Form μ λ§€μ° νΈλ¦¬ν λꡬμ΄μ§λ§, λλλ‘ λ€λ₯Έ React κΈ°λ₯κ³Όμ μ‘°ν©μ΄ νμν λκ° μμ΅λλ€. μ€λ μκ°ν λ°©μμ κ·Έλ¬ν κ²½μ°μλ λμμ΄ λ κ²μ
λλ€. νΉν, μΈλΆ refμ ν¨κ» React Hook Form μ μ¬μ©νκ³ μ ν λ μ΄ λ°©μμ΄ ν° λμμ΄ λ κ²μ
λλ€.
κ·ΈλΌ μ€λλ μ¦κ²κ² μ½λ©νμΈμ! π
'π» νλ‘κ·Έλλ° > π React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λμ λΌμ°ν μ¬μ© νμ΄μ§ λͺ¨λ κ΄λ¦¬ (0) | 2023.08.20 |
---|---|
React Router μμ Navigate ν¨μλ₯Ό νμ₯νμ¬ μ¬μ©νκΈ° (0) | 2023.08.17 |
리μ‘νΈ μ¬μ©μ μ΄ν΄ (0) | 2022.11.18 |
React νλ‘μ νΈμ sass μ°κ²°μ Node Sass version 6.0.1 is incompatible with ^4.0.0 || ^5.0.0. μλ¬ ν΄κ²° (0) | 2021.07.18 |
React Router, a νκ·Έ (0) | 2021.07.17 |