Как вы проложите маршрут по маршруту в React

Я новичок в реакции и пытаюсь избавиться от всей этой проблемы с маршрутизацией. У меня есть страница, на которой я хочу отобразить несколько маршрутов.

Мой основной файл index.js выглядит так:

ReactDOM.render(
    <BrowserRouter>
        <div>
            <Switch>
                <Route path = "/adminDash" exact component = {AdminDashMain}/>
                <Route path = "/admin/ClientSearch" exact component = {ClientDetailsMain}/>
                <Route path = "/" exact component = {LogIn}/>
            </Switch>
        </div>
    </BrowserRouter>

    , document.getElementById('root'));

в основном поиске клиентов у меня есть 3 компонента

class ClientDetailMain extends React.Component {

    render() {
        return(
            <div>
                <Header />
                <SubHeader username = {this.props.match.params.username} />
                <Display username = {this.props.match.params.username}/>
            </div>
        );
    }
}

export default withRouter(ClientDetailMain);

Я использую <Display/> в качестве контейнера, и внутри него я хочу иметь другой маршрут, чтобы человек мог перейти к

/admin/ClientSearch/refined
/admin/ClientSearch/general
/admin/ClientSearch/fixed

Я понял, что /admin/ClientSearch будет соответствовать независимо от того, что заголовок и подзаголовок отображаются на всех трех маршрутах, однако мои маршруты записываются как:

const Display = () =>{
    return(
        <div>
           <Route path ='/admin/ClientSearch/refined' component = {<Refined/>
           <Route path ='/admin/ClientSearch/general' component = {<General/>
           <Route path ='/admin/ClientSearch/fixed' component = {<Fixed/>
        </div>
    )
};

export default withRouter(ClientDisplay);

ничего не отображаются. Это то, как я должен это писать? Когда я связываюсь с этими тремя, заголовок и подзаголовок отображаются, а компоненты в отдельных маршрутах - нет.

Например '/admin/ClientSearch/fixed' показывает заголовок и подзаголовок, но не содержит собственных компонентов.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Их ключ находится в "точном" атрибуте ваших маршрутов. Кроме того, когда вы создаете компонент, внутри которого есть маршруты, вы можете получить URL-адреса предыдущих маршрутов через его свойства. Как этот пример:

class Main extends React.Component {
  render(){

    return (
      <Switch>
        <Route exact path='/' component = {Home} />
        <Route exact path='/about' component = {About} />
        <Route exact path='/contact' component = {Contact} />
        <Route path='/admin' component = {AdminArea} />
      </Switch>
    )
  }
}

Тогда у вас есть такие подмаршруты:

const AdminArea = ({match}) => (
  <Switch>
    <Route exact path = {`${match.url}/specie`} component = {Component} />
    <Route exact path = {`${match.url}/color`} component = {Component} />
    <Route exact path = {`${match.url}/user/:id`} component = {Component}/>
  </Switch>
)

Другие вопросы по теме