admin管理员组文章数量:1334697
I'm using formik in my React Native App like this:
In constructor this.myRef = React.createRef();
Creating my form ponent is like this
<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>
Where AppForm is my custom formik form ponent and AppFormField is a custom ponent.
(I'm using ref bcz I'm submitting the form using Save button outside the form ponent)
Calling handle submit like this onBtnPress={() => this.handleSubmit()}
And finally the handleSubmit function where I want to set the error.
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);
}
I've tried both setErrors and setFieldError and expecting the formik to set the error "Hello" to the field 'currentPassword' but I'm unable to do so. Please tell me the mistake if any and tell me the correct way.
Thanks!
I'm using formik in my React Native App like this:
In constructor this.myRef = React.createRef();
Creating my form ponent is like this
<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>
Where AppForm is my custom formik form ponent and AppFormField is a custom ponent.
(I'm using ref bcz I'm submitting the form using Save button outside the form ponent)
Calling handle submit like this onBtnPress={() => this.handleSubmit()}
And finally the handleSubmit function where I want to set the error.
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);
}
I've tried both setErrors and setFieldError and expecting the formik to set the error "Hello" to the field 'currentPassword' but I'm unable to do so. Please tell me the mistake if any and tell me the correct way.
Thanks!
Share Improve this question edited Dec 29, 2021 at 12:01 Sanaullah Javeid asked Dec 28, 2021 at 16:44 Sanaullah JaveidSanaullah Javeid 3171 gold badge2 silver badges16 bronze badges2 Answers
Reset to default 4Actually the problem was with the way I was calling the method. setFieldError
and setErrors
both are async and I was calling them without the await.
A.You need to add errors
in your Formik ponent
B. you use setFieldError
caller setFieldError("currentPassword", "Hello")
(info)
本文标签: javascriptWhy I39m unable to set error to formik field using setFieldError or setErrorStack Overflow
版权声明:本文标题:javascript - Why I'm unable to set error to formik field using setFieldError or setError? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742351275a2458542.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论