Загрузите React SPA в соответствии с запрошенным маршрутом - PullRequest
0 голосов
/ 12 февраля 2019

Я строю SPA-маршрутизатор реакции-редуктора.В настоящее время приложение прекрасно работает.Независимо от того, какой URL-адрес вводит пользователь, сервер отправляет index.html и запускается в корневом маршруте ('/').Я пытаюсь добиться того, чтобы, когда пользователь вводит URL-адрес, сервер по-прежнему отправляет index.html, но реагирующий маршрутизатор узнает запрошенный URL-адрес и оттуда запускает SPA.

Например, теперь, еслиЯ ввожу URL mydomain.com/profiles/1, сервер отправит файл, и я буду перенаправлен на корневой маршрут.Я хочу, чтобы при вводе того же URL-адреса реагирующий маршрутизатор автоматически загружал компонент этого маршрута, а не домашний компонент.

Это моя маршрутизация:

<Switch>
      <Route path='/logout' component={Logout} />
      <Route path='/profile/person/:personId' component={PersonProfile} />
      <Route path='/profile/sealant-customer/:customerId' component={SealantCustomerProfile} />
      <Route path="/search/sealant-customers" component={SealantCustomerSearch} />
      <Route path='/data/people' component={People} />
      <Route path="/" exact component={Home} />
      <Redirect to="/" />
</Switch>

И это работаеттолько через ссылки реагирующего маршрутизатора, а не через адресную строку браузера.

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

Спасибо.

1 Ответ

0 голосов
/ 12 февраля 2019

не знаю, правильно ли я понял ваш вопрос, но я использовал это в своем приложении

class App extends React.Component {

render() {
    return (
        <Root>
          <Router>
             <Switch>
                <Route path='/' component={Home} />
                <Route path='/profiles/:profileId' component={Profile} />
             </Switch>
          </Router>
        </Root>
    )
}

идентификатор профиля, отправляемый по пути к маршруту, можно извлечь в компоненте профиля как

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