React router v4 - сохранение параметров запроса во время навигации - PullRequest
0 голосов
/ 25 апреля 2018

Я использую React Router v4 для маршрутизации в моем приложении. Единственная проблема, с которой я столкнулся, - это то, что параметры запроса игнорируются при переходе от одного маршрута к другому. Есть ли способ просто заменить путь и сохранить параметры запроса.

Ниже мой код:

<Switch>
  <Route exact path="/" component={() => <Redirect to="/Route1" />}/>
  <Route exact path='/Route1' component={Route1Comp} />
  <Route path='/Route1/:channel/:id?'
    render={(routeProps) => (
      <AppMain {...routeProps} />
    )}
  />
  <Route exact path='/Route2' component={Route2Comp} />
</Switch>

Мне нужно, чтобы в приложении был параметр запроса ?isDev=true, и я хочу сохранить его. В настоящее время, если я нахожусь на localhost:3000/Route1Comp?isDev=true и перехожу на Route2Comp, используя Link, тогда весь путь заменяется на параметры запроса.

1 Ответ

0 голосов
/ 25 апреля 2018

Вы можете расширить компонент Link от реакции-маршрутизатора, чтобы включить параметры поиска по умолчанию, например

const ExtendedLink = ({ to, children, location}) => {
   return <Link to={{
               pathname: to,
               search: location.search
          }}>{children}</Link>
}

export default withRouter(ExtendedLink)

и затем используйте его вместо Link

<ExtendedLink to='/Route1'>Route 1</ExtendedLink>
...