React Router - изготовление панировочных сухарей - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь создать компонент Breadcrumbs с помощью react-router-dom, и у меня есть несколько вопросов

Скажите, что мне дали маршрут, который выглядит следующим образом:

breadcrumbRoutes: [
    {
      path: '/devicePolicies',
      exact: true,
      name: "Device Policies",
      main: () => <h2>Device Policies View</h2>
    },
    {
      path: '/devicePolicies/controlPanel',
      exact: true,
      name: "Control Panel",
      main: () => <h2>Control Panel View</h2>
    },
    {
      path: '/devicePolicies/controlPanel/settings',
      exact: true,
      name: "Settings",
      main: () => <h2>Settings View</h2>
    }
  ]

В настоящее время мой Breadcrumbs компонент отобразит его следующим образом Device Policies/Control Panel/Settings.Тем не менее, он неправильно отображает правильный компонент, связанный с самым последним путем /devicePolicies/controlPanel/settings.Например, вместо рендеринга компонента settings он рендерит компонент Home.

Breadcrumbs.js

Class Breadcrumbs extend Component

insertBreadcrumbs() {
var routes = this.props.routes;

    return (
      <div style={{display: 'flex'}}>
          <ul className="breadcrumb">
            { this.insertListElement(routes) }
          </ul>
          {routes.map((route) => (
             <Route
                  key={route.path}
                  path={route.path}
                  exact={route.exact}
                  component={route.main}
             />
          ))}
     </div>
    );
}
render() {
    return (
        <Router>
              { this.insertBreadcrumbs() }
        </Router>
    );
}

App.js

<Breadcrumbs 
        name="breadcrumbRoutes"
        routes={this.state.breadcrumbRoutes}
        onChange={this.handleChange}
 />

Как я могу сделать загруженный вид всегда последним компонентом моего пути?В этом примере я хочу загрузить компонент settings

Ваша помощь очень важна!

1 Ответ

0 голосов
/ 20 сентября 2018

Я понял, в чём была моя проблема.Оказывается, я неправильно тестировал поведение.Я пытался заставить свой маршрутизатор установить местоположение на settings вместо создания Link с to="devicePolicies/controlPanel/settings.Вставив Link, я смог правильно установить для моего маршрутизатора значение settings, что затем правильно отобразит соответствующий компонент.Спасибо всем за ваш вклад!

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