【发布时间】:2020-08-26 02:21:10
【问题描述】:
当我打开屏幕时,在我第一次提交表单之前,我看不到任何验证错误。一旦正确输入了电子邮件地址并通过点击按钮提交表单,表单逻辑就可以正常工作。显示警报并重置字段(有意)
但是,一旦我关闭警报,Formik 仍然会向我显示一个错误,我必须输入电子邮件地址(必填字段)。是否也可以重置错误?就像我第一次打开屏幕时一样?我希望此错误仅在我提交表单而不输入内容时出现。
我的代码片段:
在此处重置值:
const initialValues: FormValues = {
email: '',
};
const handleSubmitForm = React.useCallback(
(values: FormValues, helpers: FormikHelpers<FormValues>) => {
console.log('Submitted');
loadUsers({
variables: {
where: { email: values.email },
},
});
values.email = '';
},
[loadUsers],
);
<Formik
initialValues={initialValues}
onSubmit={handleSubmitForm}
validationSchema={validationSchema}>
{({
handleChange,
handleBlur,
handleSubmit,
values,
}) => (
<View style={styles.searchFieldContainer}>
<View
style={styles.form}
>
<FieldInput
handleChange={handleChange}
handleBlur={handleBlur}
value={values.email}
fieldType="email"
/>
<ErrorMessage
name="email"
render={(msg) => (
<Text style={styles.errorText}>
{msg}
</Text>
)}
/>
</View>
<View style={styles.buttonContainer}>
<Button
rounded
style={styles.button}
onPress={handleSubmit}>
<Text style={styles.text}>
Add Friend{' '}
</Text>
</Button>
</View>
</View>
)}
</Formik>
【问题讨论】:
标签: javascript reactjs react-native formik yup