Следующий маршрутизатор разрешает перезагрузку страницы, но запрещает навигацию, вводя URL вручную

#next.js #next-router

Вопрос:

У меня есть многоступенчатая форма с пользовательскими вводами на моем втором шаге. Итак, если сеть выйдет из строя или по какой-либо причине пользователю потребуется перезагрузить этот второй шаг с входными данными, я хочу, чтобы он мог это сделать, не переходя на маршрут по умолчанию. Однако, если пользователь хочет перемещаться между шагами ввода URL-адреса, он не должен быть в состоянии это сделать.

Этот фрагмент кода возвращает пользователя домой не только при ручной записи, но и при перезагрузке:

 useEffect(() => { 
  router.replace("?step=0");
}, []);
 

Итак, я подумал проверить, если текущий путь в основном остается прежним, никакого маршрутизатора.замена не должна произойти. Мой код определенно нарушен, но я предполагаю, что мышление сзади должно быть правильным:

 useEffect(() => { 
  if(router.asPath !== router.asPath ) {router.replace("?step=0")};
}, []);
 

Таким образом, в основном вопрос в том, как мне проверить, изменился ли путь, а затем заменить, если нет, то просто отрисовайте тот же шаг формы.