Может ли react-router обрабатывать редирект с сервера?

101
27 октября 2019, 23:40

Имеется обработчик на сервере:

app.get('/', (req, res) => {
  res.redirect('/login');
});

Как заставить react-router обрабатывать редирект на сервере

import React from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
const Header = React.lazy(() => import('./Components/Header/Header'));
const RegistrationForm = React.lazy(() => import('./Components/Forms/RegistrationForm/RegistrationForm'));
const LogonForm = React.lazy(() => import('./Components/Forms/LogonForm/LogonForm'));
import './App.css';
export default function App() {
    return (
        <React.Fragment>
            <Header />
            <Router>
                <Switch>
                    <Route exact path="/login" component={ LogonForm } />
                    <Route exact path="/registration" component={ RegistrationForm } />
                </Switch>
            </Router>
        </React.Fragment>
    )
};

То есть после запроса на сервер нам рендерился компонент LogonForm

Answer 1

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

READ ALSO
Подключить js-скрипты к Spring Boot - проекту

Подключить js-скрипты к Spring Boot - проекту

Использую библиотеку Spring BootСверстал элементарную html-страницу(не смотрите на этот код, знаю, он плох, я никогда не верстал да и вряд ли буду,...

128
смена расположений блоков js, vanilla [закрыт]

смена расположений блоков js, vanilla [закрыт]

есть два абзаца, условно A и B, только при нажатии на верхний блок, на сам абзац он меняется местами с нижним, то есть кликабельный только верхнийвсегда...

126