React(Native) Form 외부에서 Formik으로 제출 및 검증
9893 단어 reactreactnativehooksformik
useRef
후크는 여기에서 도움이 될 것입니다:import React, { useState, useRef } from 'react';
const YourComponent = () => {
const formRef = useRef();
const [input, setInput] = useState({});
const [step, setStep] = useState(1);
const saveInput = () => {
if (formRef.current) {
formRef.current.handleSubmit();
if (formRef.current.isValid) {
setStep(2);
}
}
};
const ValidationSchema = Yup.object().shape({
name: Yup.string().min(2, 'Too Short!').max(50, 'Too Long!').required('Required'),
});
return (
<View>
<Formik
initialValues={{
name: '',
description: '',
points: '',
redemptionsTotal: '',
redemptionsPerUser: '',
}}
validationSchema={QrCodeSchema}
validateOnChange={true}
validateOnBlur={false}
validateOnMount
onSubmit={(values) => setInput(values)}
innerRef={formRef}
>
{({ handleChange, handleBlur, values, touched, errors }) => {
return (
<FormInput
allowFontScaling={false}
onChangeText={handleChange('name')}
onBlur={handleBlur('name')}
value={values.name}
error={errors.name}
touched={touched.name}
name="name"
placeholder="TITLE"
returnKeyType="next"
blurOnSubmit={false}
style={styles.inputStyle}
/>
);
}}
</Formik>
<YourActionsComponent>
<Button name="submit" title={'Define Dates'} onClick={() => saveInput()} style={styles.stepButton} />
</YourActionsComponent>
</View>
);
};
이 작은 예제에서 사용자가 모든 단계에서 몇 가지 입력을 채우는 마법사와 같은 모달이 있는 경우 양식이 마운트될 때 잘못된 입력이 있는지 확인하고 단계 변경이 발생하지 않도록 설정합니다. 그렇다면.
Formik의 양식 데이터를 양식 ref에 저장하면 양식의 모든 중요한 상태에 액세스할 수 있으며(자세한 내용을 보려면
console.log(formRef.current)
실행) 이 방법으로 외부에서 프로그래밍 방식으로 제출을 호출할 수 있습니다.Formik 유효성 검사에 대한 자세한 정보https://formik.org/docs/guides/validation
Reference
이 문제에 관하여(React(Native) Form 외부에서 Formik으로 제출 및 검증), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/morenomdz/react-native-submit-and-validate-with-formik-from-outside-the-form-2oga텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)