Как сделать редирект в React.js?

Пользователь

от jeremy_larkin , в категории: JavaScript , 3 года назад

Как сделать редирект в React.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 3 года назад

@jeremy_larkin Используйте react-router-dom и хук useNavigate() чтобы сделать редирект в React.js, ниже код как пример:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import React from "react";
import ReactDOM from "react-dom";
import { useNavigate, BrowserRouter as Router } from "react-router-dom";

function Contanct() {
  const navigate = useNavigate();

  const handleClick = () => {
    navigate("/contact");
  };

  return (
    <div>
      <button onClick={handleClick} type="button">
        Редирект на /contact
      </button>
    </div>
  );
}

class App extends React.Component {
  render() {
    return (
      <Router>
        <Contanct />
      </Router>
    );
  }
}

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


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от aubree , 2 года назад

@jeremy_larkin 

В React.js вы можете выполнить редирект с помощью компонента Redirect из библиотеки react-router-dom.

  1. Добавьте Redirect компонент в вашу рендер функцию:
1
2
3
4
5
6
7
8
9
import { Redirect } from 'react-router-dom';

function MyComponent(props) {
  if (props.shouldRedirect) {
    return <Redirect to="/new-page" />;
  }

  // Дополнительный код для отображения компонента
}


  1. Обратите внимание, что Redirect компонент должен быть использован внутри Router компонента из react-router-dom. Передайте Router компоненту путь, по которому вы хотите перенаправить пользователя:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import { BrowserRouter as Router, Route, Switch, Redirect } from 'react-router-dom';

function App() {
  return (
    <Router>
      <Switch>
        <Route exact path="/">
          <Redirect to="/new-page" />
        </Route>
        <Route path="/new-page">
          <NewPage />
        </Route>
      </Switch>
    </Router>
  );
}


В этом примере, при запросе корневого маршрута, пользователь будет автоматически перенаправлен на страницу "/new-page". Обратите внимание, что в этом случае Redirect компонент находится внутри Route компонента.