To mój pierwszy kontakt z Formikiem. Przerabiając jeden manuał online i przerabiając jego przykłady na moją modłę popełniłam kod :
export default withFormik({
mapPropsToValues: () => ({ email: "", password: "" }),
validationSchema: Yup.object().shape({
email: Yup.string()
.email("Invalid email address")
.required("Required"),
password: Yup.string()
.min(8, "Must be more than 8 characters")
.required("Required")
}),
handleSubmit: (values, actions) => {
actions.setValues({
...values,
username: `@${values.email.split("@")[0]}`
});
if (values.email === "[email protected]") {
actions.setFieldValue("isEmailFlagged", { flagged: true, reason: "test" });
}
actions.setSubmitting(false);
}
})(WithFormik);
Chodzi wyłącznie o to co jest zawarte w handleSubmit. Zmieniam tam wartość dwóch pól, na dwa sposoby. Oba działają. Pytanie brzmi, czy jest między niemi jakaś znacząca różnica (tzn. między setFieldValue a setValues w tym przypadku, kiedy modyfikujemy jedno pole)?