У меня проблема с маршрутизацией в моем приложении, и, наконец, я нашел источник проблемы.Вот мое определение маршрутизатора
const PublicRoutes = ({history, isLoggedIn}) => {
console.log("RENDERING ROUTES");
return (
<Switch>
<Route exact path={'/404'} component={asyncComponent({resolve: () => import('app/modules/404/404')})}/>
<Route exact path={'/500'} component={asyncComponent({resolve: () => import('app/modules/500/500')})}/>
<Route exact path={'/login'} component={asyncComponent({resolve: () => import('app/modules/login/page/LoginPage.tsx')})}/>
<RestrictedRoute path="/dashboard" component={asyncComponent({resolve: () => import('app/modules/dashboard/page/Dashboard')})} isLoggedIn={isLoggedIn}/>
<Redirect
exact
from="/"
to="/login"
/>
</Switch>
);
};
const mapStateToProps = ({authentication}: IRootState) => ({
isLoggedIn: authentication.isAuthenticated
});
export default connect(mapStateToProps, null, null, {pure: false})(PublicRoutes);
Когда я посещаю URL-адрес корневого домена localhost:3333/
, я перенаправлен на маршрут login
, однако я получаю пустую страницу и ошибки в консоли.
RENDERING ROUTES
VM56:37 Warning: You tried to redirect to the same route you're currently on: "/login"
window.console.error @ VM56:37
routes.tsx:9 RENDERING ROUTES
VM56:37 Warning: You tried to redirect to the same route you're currently on: "/login"
window.console.error @ VM56:37
routes.tsx:9 RENDERING ROUTES
VM56:37 Warning: You tried to redirect to the same route you're currently on: "/login"
Я получаю пять таких ошибок.
Я использую PublicRoutes
следующим образом
render() {
const {notifications} = this.props;
return (
<div className="app-container">
<LoadingBar showFastActions={false} updateTime={50} style={{backgroundColor: '#009cd8', height: '4px', zIndex: 999999}}/>
<Notifications notifications={notifications} style={notificationsStyle}/>
<ToastContainer
position={toast.POSITION.TOP_LEFT as ToastPosition}
className="toastify-container"
toastClassName="toastify-toast"
/>
<DashAppHolder>
<PublicRoutes history={history}/>
</DashAppHolder>
</div>
);
}
Что не так с моим кодом, почему отображаются маршрутынесколько раз?
Спасибо