Мне нужно настроить маршрутизацию для моего приложения.Я делаю это в моей локальной системе.Пакеты, которые я использую: "react-router": "^4.3.1"
, "react-router-dom": "^4.3.1"
, "history": "^4.7.2"
и "connected-react-router": "^4.3.0"
.
Я хочу, чтобы пользователь перенаправлялся на http://localhost:xxxx/login
, когда он переходит на http://localhost:xxxx
.В реальном сценарии на prod, baseUrl
следует выбрать из window.location.pathname
, а затем пользователь должен быть перенаправлен для входа в систему.
Это не решает задачу в приведенном ниже коде.При вводе http://localhost:3000
новое имя пути http://localhost:3000/login
отображается в строке URL, но страница входа не загружается.Все, что я вижу, это пустая страница.
Однако в приведенном ниже коде, если я return /
в History.js и удаляю второй маршрут из Routes.js, страница входа успешно загружается.
History.js
import createHistory from 'history/createBrowserHistory';
function checkUrl() {
let baseUrl = window.location.pathname;
window.localStorage.setItem('baseUrl', baseUrl);
return `${baseUrl}`
}
const history = createHistory({
basename: checkUrl(),
});
export default history;
Routes.js
import React from 'react';
import { Route, Switch, Redirect } from 'react-router-dom';
import Login from '../Pages/Login/Login';
const Routes = () => (
<Switch>
<Route exact path="/login" component={Login} />
<Route
exact
path="/"
render={() => (
<Redirect to="/login" />
)}
/>
</Switch>
);
export default Routes;
Store
import { connectRouter, routerMiddleware } from 'connected-react-router/immutable';
import history from '../history/history';
const routeMiddleware = routerMiddleware(history);
//I have applied the middleware and configured rest of the store, here only exposed relevant information that I am using `connected-react-router`
Я сталкивался с множеством статей, чтобы решить эту проблему, пробовал много P & C.Но я не могу обернуть голову вокруг этого.