React Private Route Redirect не работает с ядром Asp.net - PullRequest
0 голосов
/ 21 ноября 2018

Я создал один веб-сайт с 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, поэтому он выдаст мне ошибку, как показано ниже:

enter image description here

Если я удаляю Redirect из PrivateRoute, тогда он работает правильно.Поэтому я думаю, что проблема с маршрутизацией MVC происходит для перенаправления.

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