Я создал один веб-сайт с Asp.Net Core и машинописным шрифтом / веб-пакетом / реагировать в версии 2017.
В основном у меня есть 3 страницы: домашняя страница указателя, страница входа и панель инструментов на моем веб-сайте.Домашняя страница является главной страницей для отображения приложения реакции.
Если пользователь входит в систему, компонент Dashboard будет отображаться, а если нет, то компонент входа будет отображаться в представлении Home Index.
Ниже приведено мое основное приложение со списком маршрутов:
export class App extends React.Component<{}, {}> {
constructor(props) {
super(props);
}
public render() {
return (
<div >
<Route exact path="/" component={Login} />
<Route exact path="/login" component={Login} />
<Layout>
<PrivateRoute exact path="/dashboard" component={Dashboard} />
</Layout>
</div>
);
}
}
и PrivateRoute имеет вид:
export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
localStorage.getItem('user') ?
<Component {...props} /> :
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}} />
)}/>
)
Это работает, как если бы не войти в систему, то он возвращается к URL-адресу компонента входа в систему (внутри Home Index).Но проблема в том, что если я просто обновлю эту страницу из браузера (localhost: 1234 / login), то он попытается найти этот /login
в маршрутизации MVC, поэтому он выдаст мне ошибку, как показано ниже:
Если я удаляю Redirect из PrivateRoute, тогда он работает правильно.Поэтому я думаю, что проблема с маршрутизацией MVC происходит для перенаправления.