Как избежать реакции коллизий параметров маршрутизатора? - PullRequest
2 голосов
/ 10 марта 2020

Найдите следующее Switch ниже:

  <Switch>
    <Route exact path='/portfolios/:page/:portfolioId?/:questionId?' component= 
    {Portfolios} />
  </Switch>

Портфель ios Компонент также содержит переключатель, который является следующим:

  <Switch>
    ...
    <Route exact path='/portfolios/random/:portfolioId' component={Subscription} />
    <Route exact path='/portfolios/questions/:questionId' component={RiskFunnelQuestions} />
    <Redirect exact from='/portfolios/banner/:portfolioId' to={this.getRedirectionURL()} />
  </Switch>

Теперь проблема заключается в getRedirectionURL function

getRedirectionURL() {
  const {
    match: {
      params: { portfolioId }
    }
  } = this.props;
  if(!portfolioId){
    return '/anything/else';
  }
  console.log(portfolioId) // is returning 1
 // handling some conditions I'm not writing the full functionalities  
 return `/portfolios/random/${portfolioId}`
}

Предположим, что запрашиваемая ссылка /portfolios/questions/1, поэтому getRedirectionURL предполагает, что идентификатор_файла равен 1, что является семантией c ошибка! Ожидаемый идентификатор портфеля: undefined или null.

Кажется, принимая во внимание путь / портфель заказа, затем /questionId.

Как этого избежать путаница

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