如何解决尽管输入了数据,但仍会触发 Formik 验证错误
只有在必填字段中没有数据时才会显示验证错误。但无论出于何种原因,错误总是会显示出来。我也使用过“touched”和“setFieldTouched”道具,但到目前为止没有运气。非常感谢任何帮助。
这是我的 Yup 验证方案:
const validationSchema = Yup.object().shape({
title: Yup.string().required().label("Title"),price: Yup.number().required().label("Price"),});
还有我的 Formik 表格:
<Formik
validationSchema={validationSchema}
initialValues={{ title: '',price: '' }}
onSubmit={(values,actions) => {
actions.resetForm();
console.log(values);
}}
>
{(props) => (
<View>
<ScrollView style={styles.scrollView}>
<TextInput
onBlur={()=>props.setFieldTouched("title")}
style={styles.textInput} placeholder='title'
onChangeText={(title)=>this.setState({title: title})}
value={this.title} />
{props.touched.title && <Text style={{ color: 'red',alignSelf: 'center'}}>{ props.errors.title}</Text>}
<TextInput
onBlur={()=>props.setFieldTouched("price")}
style={styles.textInput} placeholder='price'
onChangeText={(price)=>this.setState({price: price})}
value={this.price}
keyboardType='numeric' />
{ props.touched.price && <Text style={{ color: 'red',alignSelf: 'center'}}>{ props.errors.price}</Text>}
</ScrollView>
</View>
)}
</Formik>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。