Реагирующий маршрутизатор переходит на предыдущую страницу

#reactjs #react-router

#reactjs #реагировать-маршрутизатор

Вопрос:

Я пытаюсь реализовать кнопку «вернуться» к шагу, но по какой-то причине при этом она продолжает возвращать ошибку «Страница 404 не найдена». Похоже, что это работает только при переходе к шагу 2 и возвращении к первому шагу (или маршруту по умолчанию)..

Настройка маршрута:

 <Router>
    <Route exact path='/onboard/' component={Main} />
    <Route path='/onboard/step2' component={Step2} />
    <Route path='/onboard/step3' component={Step3} />
    <Route path='/onboard/summary' component={Summary} />
</Router>
  

Функция возврата:

 const handleBack = () => {
    props.history.go(-1);
};
  

Кроме того, поскольку это «вложенный URL» (так сказать), необходимо ли добавить следующее в мой onSubmit для шага 2 или есть альтернативный способ сделать это?

 const onSubmit = (data) => {
    action(data);
    props.history.push('./onboard/step2');
};
  

Все, что следует за вторым шагом, похоже, работает с:

 const onSubmit = (data) => {
    action(data);
    props.history.push('./summary');
};
  

Ответ №1:

если вы console.log('history', history) должны увидеть goBack() метод, который вы можете вызвать

РЕДАКТИРОВАТЬ: вот как вы это используете props.history.goBack() добавьте это к кнопке <button onClick={()=> props.history.goBack()}>go back</button>

песочница

Комментарии:

1. Даже используя GoBack(), я все еще получаю ошибку 404, страница не найдена, и я не могу понять, почему…

2. это работает для меня. используете ли вы browserHistory? или хэш?

3. Я использую то же самое, что и следующее: codesandbox.io/s/react-hook-form-wizard-form-gxvvc