为什么我无法使用 setFieldError 或 setError 将错误设置为福米克字段?



我在React Native应用程序中使用formik,如下所示:在构造函数this.myRef = React.createRef();

创建我的表单组件就像这个

<AppForm
innerRef={this.myRef}
initialValues={{ currentPassword: '', newPassword: '', confirmPassword: '' }}
validationSchema={validationSchema}
onSubmit={() => ''}
>
<AppFormField
heading='Current Password'
name='currentPassword'
autoCapitalize='none'
secureTextEntry={!showCurrentPassword}
icon={showCurrentPassword ? 'eye' : 'eye-off'}
onIconClick={() => this.setState({ showCurrentPassword: !showCurrentPassword })}
/>

</AppForm>

其中AppForm是我的自定义formik表单组件,AppFormField是一个自定义组件。

(我使用ref bcz,我使用表单组件外的Save按钮提交表单(

调用像这样的onBtnPress={() => this.handleSubmit()}提交句柄

最后是我想要设置错误的handleSubmit函数。

handleSubmit = async () => {
this.myRef.current?.submitForm();
this.myRef.current.setErrors({currentPassword: 'Hello'});
this.myRef.current.setFieldError('currentPassword', 'Hello'); // I've tried both ways
console.log('CurrentRef ', this.myRef.current);
}

我已经尝试了setErrors和setFieldError,并期望formik设置错误";你好"到字段"currentPassword",但我无法这样做。如果有错误,请告诉我,并告诉我正确的方法。

谢谢!

实际上问题出在我调用该方法的方式上。setFieldErrorsetErrors都是异步,我调用它们时没有等待

A.您需要在Formik组件中添加errors

B。您使用setFieldError呼叫方setFieldError("currentPassword", "Hello")(信息(

相关内容

  • 没有找到相关文章

最新更新