React Router не маршрутизирует по пути, указанному в элементе Route - PullRequest
0 голосов
/ 14 марта 2019

В следующем приложении React с двумя маршрутами URL-адрес http://myapp правильно перенаправляется на компонент Layout. Однако URL http://myapp/login также направляет к компоненту Layout, а не к Login. Если я изменяю путь = "/ login" на "/ signin", он корректно направляется к компоненту Login.

Есть ли что-то особенное в пути "/ login" в React Router, который направляет его к маршруту? Или есть ошибка в том, как я настроил эту маршрутизацию?

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { AppContainer } from 'react-hot-loader';
import { BrowserRouter, Switch, Route } from 'react-router-dom';
import { Layout } from './components/Layout';
import { NotFound } from './components/NotFound';
import { Login } from './components/Login';

//Redux store
import { Provider } from "react-redux";
import store from "./store";

function renderApp() {

  ReactDOM.render(
    <Provider store={store}>
      <BrowserRouter basename="/">
        <Switch>
          <Route exact path="/" component={Layout} />
          <Route exact path="/login" component={Login} />
          <Route component={NotFound} />
        </Switch>
      </BrowserRouter>
    </Provider>,
    document.getElementById('react-app')
  );

}

renderApp();

1 Ответ

0 голосов
/ 14 марта 2019

Итак, похоже, вы должны быть осторожны, чтобы атрибут basename был правильно указан для сопоставления маршрута. "/" соответствует "/ логин", но "~ /" неверно. Подумайте, нужен ли вам атрибут basename, и если это так, будьте осторожны, чтобы рассмотреть его значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...