Нужно перенаправить пользователя после успешной регистрации на страницу входа.
Хотелось бы обойтись возможностями реакт роутера, но другие варианты тоже рассматриваю.
Желательно, не передавая history (useHistory) аргументом в createUser.
package.json
{
"react-router-dom": "^5.3.0"
}
Register.jsx
const onSubmit = ({ phone, email, password }, { setSubmitting }) => {
dispatch(createUser({ phone: replace(phone, /\D/g, ''), email, password }));
setSubmitting(false);
};
<Formik
validationSchema={RegisterSchema}
initialValues={{ [FIELDS.PHONE]: '', [FIELDS.EMAIL]: '', [FIELDS.PASSWORD]: '' }}
onSubmit={onSubmit}
>
// ..................
</Formik>
createUser.js
const callRegister = (data) => http.post(METHODS.REGISTER, data);
export const createUser = (data) => async (dispatch) => {
const [execute] = apiShell(callRegister, dispatch);
const response = await execute(data);
const success = get(response, 'success') || false;
if (success) {
// здесь нужен редирект
}
};
UPD: в общем, сделал
так, пока работает.