Вложенные маршруты маршрутизатора React?

Итак, у меня есть приложение React, в котором есть основные маршруты

/
/projects
/gallery
/about

Я хочу иметь вложенный маршрут, который выглядит как

/projects/skout

Я не уверен, почему, но этот маршрут не отображает правильный HTML из соответствующего файла компонента. Это просто пусто.

Компонент приложения

class App extends Component {

  constructor(props) {
    super(props);
    this.child = React.createRef();
  }

  render() {

    let routes = (
      <Switch>
        <Route exact path = "/projects/skout" Component = {Skout} />
        <Route exact path = "/about" component = {About} />
        <Route exact path = "/projects" component = {Projects} />
        <Route exact path = "/gallery" component = {Gallery} />
        <Route exact path = "/" component = {Home} />
        <Redirect exact to = "/" />
      </Switch>
    )

    return (
      <BrowserRouter>
        <div className = "App" styleName = "main-wrapper">
          <Layout>
              {routes}
          </Layout>
        </div>
      </BrowserRouter>

    );
  }
}

export default CSSModules(App, styles);

Компонент Skout

import React from 'react';

const skout = (props) => (
    <div>
        <span className = "container">
            <div className = "row">
                <h1>
                    Gallery
                </h1>
            </div>
            <span className = "container">
                <p>
                    Storage for Photos, Ideas, and Thoughts
                </p>
            </span>
        </span>
    </div>
)

export default skout;

Должен ли я проложить маршрут внутри компонента /projects?

<Redirect exact to = "/" />
Bhojendra Rauniyar 14.09.2018 06:24

Вы используете react-router v4?

Abin Thaha 14.09.2018 06:30

да, реагируйте на маршрутизатор v4.3.1 @Abinthaha

Bill Sheng 14.09.2018 06:31

Вы пробовали это => stackoverflow.com/questions/41474134/…

Abin Thaha 14.09.2018 06:36
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
4
63
1

Ответы 1

Вам необходимо отобразить соответствующий компонент маршрута внутри Layout, поскольку они являются вложенными маршрутами:

  export const Layout = ({ children }) => (
     <React.Fragment>
            {children}
     </React.Fragment>
   )

Но в реактивном маршрутизаторе v4 вложенные маршруты должны отображаться отдельно. Вам нужно разместить маршруты внутри компонентов Layout.

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