RouterBrowser не перенаправляет на страницу по умолчанию при обновлении

#reactjs #react-router #react-functional-component

Вопрос:

У меня есть страница входа в систему, на которую я хочу, чтобы браузер перенаправлял ее по умолчанию. Код, который у меня есть, делает это для первого запуска (перенаправлен на http://localhost:3000/login) но после того, как я перехожу на другую страницу и нажимаю «Обновить», он не перенаправляется обратно на страницу входа, а остается на последнем URL-адресе, на котором он был. Что я делаю не так?

    return (
    <div>
      <h1>Movies - Subscriptions Web Site</h1>
      <br />
      <Link to="/movies" style={{ textDecoration: "none" }}>
        <input type="button" value="Movies" />{" "}
      </Link>
      <Link to="/subscriptions" style={{ textDecoration: "none" }}>
        <input type="button" value="Subscriptions" />{" "}
      </Link>
      <Link to="/userManagement" style={{ textDecoration: "none" }}>
        <input type="button" value="User Management" />{" "}
      </Link>
      <input type="button" value="Log Out" />

      <Switch>
        <Route exact path="/">
          <Redirect to="/login" />
        </Route>
        <Route path="/login" component={LoginComp} />
        <Route path="/movies" component={MoviesComp} />
        <Route path="/subscriptions" component={SubscriptionsComp} />
        <Route path="/userManagement" component={ManageUsersComp} />
      </Switch>
    </div>
  );
 

Ответ №1:

Удалите точный и маршрутный тег и напрямую напишите

 <Redirect path="/" to="/login" />
 

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

1. Я написал <Перенаправление> перед <Перенаправлением><Переключателем>, и только это сработало. На самом деле в этом есть большой смысл 🙂 Спасибо!

Ответ №2:

Удалить exact свойство и route тег

 <Redirect to="/login" />
 

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

1. Я написал <Перенаправление> перед <Перенаправлением><Переключателем>, и только это сработало. На самом деле в этом есть большой смысл 🙂 Спасибо!