Formik 및 Yup(사용자 지정 후크)을 사용하여 양식 조건부 유효성 검사 반응
6840 단어 yupformikreactmaterialui
요약
Formik은 React에서 양식을 작성하는 데 사용합니다. Formik은 양식을 만드는 동안 삶을 더 쉽게 만드는 많은 기능(코드 감소, 쉬운 유지 관리, 사용자 정의 후크, 쉬운 통합 등)을 제공합니다. Yup을 사용하면 유효성 검사를 위한 스키마를 쉽게 구축할 수 있습니다.
Formik 설치
npm i formik
설치 예
npm i yup
포믹 소개
// Simple form with formik
import React from "react";
import { useFormik } from "formik";
const SignupForm = () => {
const formik = useFormik({
initialValues: {
email: "",
},
onSubmit: (values) => {
alert(JSON.stringify(values, null, 2));
},
});
return (
<form onSubmit={formik.handleSubmit}>
<label htmlFor="email">Email Address</label>
<input
id="email"
name="email"
type="email"
onChange={formik.handleChange}
value={formik.values.email}
/>
<button type="submit">Submit</button>
</form>
);
};
문제 설명
문제는 formik 양식에 두 개의 입력이 있다는 것입니다. 하나는 선택이고 다른 하나는 텍스트 입력 선택으로 '예' 또는 '아니오'의 두 가지 옵션이 있습니다. 사용자가 '예'를 선택하면 사용자는 요리에 대해 작성해야 하는 반면 사용자가 '아니오'를 선택하면 유효성 검사가 없습니다.
해결책
필요한 경우 암호를 입력하고 필요하지 않은 경우 선택적으로 만들어야 하는 형식 양식이 있었습니다. 'Yup'을 사용하여 필드의 유효성을 검사하는 동안 필드의 유효성 검사 논리를 조건부로 변경하는 방법이 필요했습니다. 이를 위해 일부 조건에 따라 필드에 적용되는 유효성 검사 논리를 변경할 수 있는 Yup의 when() 함수를 사용해야 합니다. 그런 다음 값을 전달하고 사용자가 옵션에서 예(사용자가 치킨을 먹고 싶어함)를 선택하면 사용자가 다른 조건을 원하지 않는 치킨 요리에 대해 작성해야 한다는 조건을 만듭니다. 요리에 대한 쓰기는 사용자 선택에 따라 다릅니다.
Formik useFormik 사용자 지정 후크
const formik = useFormik({
initialValues: {
dropdown: "",
ChickenDish: "",
},
그래 스키마
validationSchema: Yup.object({
dropdown: Yup.string(),
ChickenDish: Yup.string().when("dropdown", {
is: (dropdown) => dropdown === "Yes",
then: Yup.string().required("* Required"),
}),
예시
yqn631.csb.app
Reference
이 문제에 관하여(Formik 및 Yup(사용자 지정 후크)을 사용하여 양식 조건부 유효성 검사 반응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/chusama708/react-form-conditional-validation-with-formik-and-yup-custom-hooks-14dj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)