这是关于 formik (反应和打字稿)。
我设法使一些代码工作,但我用.bind(this)
它。我真的认为有更好的方法来做事,所以我在这里问。
这是代码:
public register(values: IRegistrationForm, { setSubmitting, setFieldError }: FormikActions<IRegistrationForm>) {
axios
.post(process.env.REACT_APP_API_URL + '/register', values)
.then(response => {
this.success(); // fail without the bind(this)
setSubmitting(false);
});
}
private formik() {
// I need to bind this to be able to call some methods of my component
const register = this.register.bind(this);
return (
<Formik
initialValues={{
email: '',
password: '',
}}
onSubmit={register}
render= {this.formRender}
validationSchema={Yup.object().shape({
email: Yup.string().email().required(),
password: Yup.string().min(10).required(),
})}
/>
);
}
如果它有帮助(不确定)整个代码在这里:https ://gist.github.com/Nek-/c4ccb6b76593d71105c29079c48757f0