перенаправить в формик с тупой реакцией?

Я играю с formik и yup в реакции, и мне было интересно, как лучше всего сделать перенаправление после успешного запроса?

Я попытался передать объект истории, но это дало мне ошибку, говоря, что он глобальный:

const SignUp = withFormik({
  mapPropsToValues({
    username,
    email,
    password,
    passwordConfirm,
    registerUser
  }) {
    return {
      username: username || '',
      email: email || '',
      password: password || '',
      passwordConfirm: passwordConfirm || ''
    };
  },

  validationSchema: Yup.object().shape({
    username: Yup.string()
      .required('must have username')
      .min(5, 'username must be 5 characters long'),
    email: Yup.string()
      .email('Please enter a valid email')
      .required('Email is required'),
    password: Yup.string().required('No password provided.'),
    passwordConfirmation: Yup.string().oneOf(
      [Yup.ref('password'), null],
      'Passwords must match'
    )
  }),

  handleSubmit(values, { resetForm }) {
    const user = {
      username: values.username,
      email: values.email,
      password: values.password
    };
    //registerUser(user)
    //re direct here ?
    resetForm();
  }
})(SignUpPage);

export default SignUp;

person seattleguy    schedule 27.09.2019    source источник


Ответы (2)


Если вы используете React Router, и это один из маршрутов, тогда у вас будет history в props.

Я создал небольшой пример, проверьте его.

https://stackblitz.com/edit/react-formik-form-validation-gge2u7?file=App%2FApp.jsx

person Sandip Nirmal    schedule 27.09.2019

window.location.replace ('/ домашняя страница'); // использовать его в handleSubmit.

person khasim sharif    schedule 05.06.2021