Как использовать React-Router в Reactjs

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

Как я могу использовать домашнюю категорию и продукты маршрутизатора. Я помещаю код в App.jsx и index.jsx, но показываю пустую страницу, как я могу решить эту проблему.

Ниже приведен мой код App.jsx.

/* Import statements */
import React, { Component } from 'react';
import { Link, Route, Switch } from 'react-router-dom';

/* Home component */
const Home = () => (
  <div>
    <h2>Home</h2>
  </div>
)

/* Category component */
const Category = () => (
  <div>
    <h2>Category</h2>
  </div>
)

/* Products component */
const Products = () => (
  <div>
    <h2>Products</h2>
  </div>
)

/* App component */
class App extends React.Component {
  render() {
    return (
      <div>
        <nav className = "navbar navbar-light">
          <ul className = "nav navbar-nav">

           /* Link components are used for linking to other views */
            <li><Link to = "/">Homes</Link></li>
            <li><Link to = "/category">Category</Link></li>
            <li><Link to = "/products">Products</Link></li>

          </ul>
         </nav>

          /* Route components are rendered if the path prop matches the current URL */
           <Route path = "/" component = {Home}/>
           <Route path = "/category" component = {Category}/>
           <Route path = "/products" component = {Products}/>

      </div>
    )
  }
}

Вот мой код index.jsx

import React from 'react';
import { render } from 'react-dom';

import { App } from './components/App';
import './style.less';

render(<App />, document.getElementById('container'));
Поведение ключевого слова "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
69
1

Ответы 1

Вам нужно импортировать BrowserRouter и обернуть весь код приложения в этот компонент, чтобы маршруты могли реагировать на изменения URL-адреса, поэтому в вашем импорте react-router-dom

import { BrowserRouter, Route, Link } from “react-router-dom”

return (
   <BrowserRouter>
   <div>
    <nav className = "navbar navbar-light">
      <ul className = "nav navbar-nav">

       /* Link components are used for linking to other views */
        <li><Link to = "/">Homes</Link></li>
        <li><Link to = "/category">Category</Link></li>
        <li><Link to = "/products">Products</Link></li>

      </ul>
     </nav>

      /* Route components are rendered if the path prop matches the current URL */
       <Switch>
       <Route path = "/" component = {Home}/>
       <Route path = "/category" component = {Category}/>
       <Route path = "/products" component = {Products}/>
       </Switch>

  </div>
  </BrowserRouter>
)

Таким образом вы получите рабочий пример, так что BrowserRouter будет отслеживать изменения, внесенные в URL-адрес, и реагировать на эти изменения в его компонентах Route, помните, что вам нужно передать каждому компоненту Route свойство под названием exact = {true} или, что еще лучше, обернуть все ваши компоненты Route компонентом Switch. , которые предотвращают отображение всего маршрута при изменении URL-адреса, с Switch будет отображаться только маршрут, который соответствует точному пути

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