Кнопка возврата браузера показывает пустую страницу (создать приложение React реагировать маршрутизатор)

#reactjs #react-router #create-react-app

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

Вопрос:

Я использую Create React App и React Router. Когда я нажимаю ссылку на странице 1, например, она успешно переходит на страницу 2. Но затем, когда я нажимаю кнопку «Назад» в Chrome, она показывает пустую страницу. Проверка в консоли показывает, что CRA по умолчанию index.html страница загружена, но она никогда не доходит до рендеринга. В случае, если это поможет, после нажатия кнопки «Назад» URL-адрес, отображаемый в браузере, является правильным.

Я был бы очень признателен за любые советы о том, как устранить проблему.

Вот строка в моем index.js файл , который отображает . Я считаю, что это стандартно в любом приложении CRA.

 ReactDOM.render(<App />, document.getElementById("root"));
  

Вот тег, который я нажимаю со страницы 1, чтобы перейти на страницу 2:

 <a className={props.className} href={"/page2"}>
{props.children}
</a>
  

index.html который отображается, когда я нажимаю кнопку возврата браузера Chrome со страницы 2, является index.html автоматически генерируется CRA: https://github.com/facebook/create-react-app , который, по сути, является просто пустой страницей.

Проблема в том, что <App /> на самом деле никогда не отображается после выполнения обратной операции (несмотря на то, что она находится в index.js ).

Я использую React router, который находится внутри <App /> компонента.

Вот как определяется мой компонент приложения:

 const App = () => {
return (
        <Router>
          <Switch>
            <Route
              path={
                "/page1"
              }
              render={(props) => {
                return <Page1 {...props} />;
              }}
            />
            <Route
              path={
                "/page2"
              }
              render={(props) => {
                return <Page2 {...props} />;
              }}
            />
            <Route
              path="/*"
              render={(props) => (
                <ErrorPage error={ErrorType.NOT_FOUND_ERROR} />
              )}
            />
          </Switch>
        </Router>
      );
    };
  

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

1. Этой информации недостаточно, чтобы действительно помочь. Какой маршрутизатор вы используете? Какой сервер? Пожалуйста, поделитесь некоторым кодом

2. Просто отредактировал вопрос с более подробной информацией. Дайте мне знать, если вам нужно что-нибудь еще 🙂

3. Можете ли вы показать, как вы определили свои маршруты?

4. Просто обновил ответ, чтобы показать, как определяются маршруты! Проблема в том, что даже когда я консоль. войдите в верхнюю часть компонента <App />, он не попадает туда после нажатия кнопки «Назад».