У меня есть несколько параметров в 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