Реагировать на добавление маршрутизатора в текущий URL с несколькими параметрами - PullRequest
0 голосов
/ 14 октября 2019

У меня есть несколько параметров в URL, который продолжает встраиваться следующим образом http://localhost:3000/channels/:channel_id/conversations/:conversation_id проблема в том, что приложение основано на одной странице, поэтому я добавил <Route ... /> в один и тот же файл дважды как частичные представления, один для разговоровсписок, другой предназначен для самого чата, я смог успешно получить доступ к свойству this.props.match.params.channel_id в первом <Route ... />, но я продолжаю получать неопределенное значение для второго базового URL, как я могу сохранить URL-адрес params в введенных реквизитахпо реакции-router-dom по умолчанию?

здесь находится домашняя страница, на которой определены несколько маршрутов

render() {
    return (<div className="chats-screen-container">
      <div className="chats-container">
        {/*
          this.props.match.channel_id is accessible inside this component <Chats />
          but I keep getting the literal word (channel_id) when defining the route using the same principle i.e: /home/channels/:channel_id/... in the
          <Route .../> component with the <Chat />
        */}
        <Route path={`/home/channels/:channel_id/chats`} render={props => <Chats {...props}/>} exact={false}/>
      </div>
      <div className="chat-container">
        {/* Split The Absolute Path Before The Wildcard */}
        <Route path={`${this.props.location.pathname.split("/:conversation_id")[0]}/:conversation_id`} render={props => (<Fragment>
            <Chat/>
          </Fragment>)} exact={false}/>
      </div>
    </div>);
  }

Я хочу добавить к выбранному каналу в URL, используя this.props.match.params.channel_id и добавьте новый подстановочный знак :conversation_id

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