我正在尝试在 formik 中进行字段验证。问题是我制作了一个多步骤表单,我的方法是制作了一系列组件,并根据页面[状态]使用它们,但我不知道如何向其发送 Prop 。 我想验证该字段是否只包含两位数字,如果不包含则显示错误消息
const SignUp = () => {
const state = useSelector((state: RootState) => state);
console.log("state", state);
const dispatch = useDispatch();
return (
<Formik
initialValues={{ firstName: "", lastName: "", email: "" }}
onSubmit={values => {
setTimeout(() => {
alert(JSON.stringify(values, null, 2));
}, 500);
}}
render={({ errors, touched, isValidating }) => (
<Form>
<div>{pages[state]}</div>
<button
type="button"
onClick={() => {
dispatch(decrement());
}}
>
Prev
</button>
<button
type="button"
onClick={() => {
pages.length - 1 <= state
? console.log("No more pages")
: dispatch(increment());
}}
>
Next
</button>
</Form>
)}
/>
);
};
const Page2 = () => {
return (
<>
<h1>
What is your <span id="idealWeightText">ideal weight</span> that you
want to reach?
</h1>
<Input
name={"firstName"}
htmlFor={"firstName"}
type={"number"}
validation={validateKilograms}
/>
</>
);
};
const Input: React.FC<FieldProps> = ({
name,
onChange,
htmlFor,
type,
validation,
placeholder
}) => {
return (
<>
<label htmlFor={name}>
<Field
type={type}
name={name}
placeholder={placeholder}
validate={validation}
onChange={onChange}
/>
kg
</label>
</>
);
};
最佳答案
有一个名为 Yup 的库,您可以使用它,您将可以自由地设置条件验证。
是的,最适合使用 formik 进行验证。
在每个步骤之后,您都可以启用标志并相应地设置验证。
此外,我建议您使用 withFormik。而不是 formik,因为您可以创建一个单独的文件进行验证并可以给出其路径。这样也将改善您的文件夹结构。
关于javascript - 尝试使用 Formik 进行多步骤验证。如何验证字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59410446/