React Hook Form에서 라디오 버튼 Null 값 처리

제목: react-hook-form으로 라디오 버튼 문제 해결하기 이 블로그 포스트에서는 react-hook-form을 사용하여 만든 양식에서 라디오 버튼과 관련된 문제를 해결하는 방법에 대해 논의합니다. 특히, 선택된 라디오 버튼 값을 로그에 제대로 기록하지 못하는 문제에 대해 다룰 것입니다. 이로 …

title_thumbnail(React Hook Form에서 라디오 버튼의 Null 값 문제해결하기)

제목: react-hook-form으로 라디오 버튼 문제 해결하기

이 블로그 포스트에서는 react-hook-form을 사용하여 만든 양식에서 라디오 버튼과 관련된 문제를 해결하는 방법에 대해 논의합니다. 특히, 선택된 라디오 버튼 값을 로그에 제대로 기록하지 못하는 문제에 대해 다룰 것입니다. 이로 인해 예상치 않은 null 값이 표시됩니다. 이 문제를 해결하고 라디오 버튼의 올바른 값을 캡처하고 콘솔에 기록할 수 있도록 하는 단계별 지침을 제공할 것입니다.

문제 설명

이 문제는 react-hook-form 라이브러리를 사용하여 라디오 버튼이 있는 양식을 만들 때 발생합니다. “fullName”과 “city”와 같은 다른 입력 필드의 값은 제대로 기록됩니다. 그러나 라디오 버튼의 선택된 값은 예상한 값(rain, wind 또는 sun) 대신 null로 기록됩니다. 또한 라디오 버튼의 “name” 속성을 끄면 개별적으로 선택할 수 있지만, 사용자는 하나의 옵션만 선택할 수 있어야 하는 것이 의도한 동작입니다.

해결책: 라디오 버튼 필드 올바르게 등록하기

이 문제를 해결하고 선택된 라디오 버튼 값을 올바르게 캡처하려면 react-hook-form의 register 함수에서 동일한 매개변수를 사용하여 라디오 버튼 필드를 등록해야 합니다. 모든 라디오 버튼에 동일한 매개변수를 할당함으로써 react-hook-form은 양식 데이터를 올바르게 처리하고 선택된 값을 로그에 기록합니다.

아래는 수정된 코드 스니펫입니다:


function App() {
    const {register, handleSubmit} = useForm();

    function onSubmitButton(data) {
        console.log(data);
    }

    return (
        <>
            <h1>날씨 주문하기</h1>
            <form onSubmit={handleSubmit(onSubmitButton)}>
                <input
                    {...register("fullName")}
                    type="text"
                    placeholder="이름과 성"
                    id="name"
                />
                <input
                    {...register("city")}
                    type="text"
                    placeholder="도시"
                    id="city"
                />
                <p>원하는 날씨:</p>
                <label htmlFor="field-rain">
                    <input
                        {...register("weather")}
                        type="radio"
                        value="rain"
                        id="field-rain"
                    />
                    비
                </label>
                <label htmlFor="field-wind">
                    <input
                        {...register("weather")}
                        type="radio"
                        value="wind"
                        id="field-wind"
                    />
                    강풍
                </label>
                <label htmlFor="field-sun">
                    <input
                        {...register("weather")}
                        type="radio"
                        value="sun"
                        id="field-sun"
                    />
                    화창함
                </label>
                <button type="submit">
                    전송
                </button>
            </form>
        </>
    );
}

이러한 변경 사항을 적용하면 라디오 버튼 문제가 해결되고, 양식을 제출할 때 선택된 값이 올바르게 콘솔에 기록됩니다.

결론

이 블로그 포스트에서는 react-hook-form을 사용하여 만든 양식에서 라디오 버튼이 선택된 값을 올바로 캡처하지 않는 문제를 다루었습니다. register 함수에서 동일한 매개변수로 라디오 버튼 필드를 등록함으로써 선택된 값이 null 대신 올바르게 기록되도록 보장했습니다. 제안된 변경 사항을 구현하면 양식이 의도한 대로 작동하고 사용자의 선택을 정확하게 캡처할 수 있습니다.

라디오 버튼과 관련된 문제를 해결하는 이 해결책 가이드가 도움이 되었기를 바랍니다. 추가 질문이나 다른 개발 과제에 직면하면 아래 댓글 섹션을 통해 문의해 주세요.

참고 자료 : 

reactjs

Leave a Comment