Как я могу использовать ссылку Navbar в Reactjs?

Я пытаюсь создать веб-сайт с помощью Reactjs. Я попытался создать панель навигации, а на панели навигации я создал 2 ссылки: «Домой» и «Контакт». Когда я нажимаю, например, кнопку контакта, я вижу конечную точку по URL-адресу, но на странице ничего не происходит. Я уже создал маршруты и ссылки, но я действительно не понимал, почему я не могу использовать ссылки Navbar. Вы можете мне помочь, пожалуйста? Заранее спасибо.

import React from 'react';
import PropTypes from 'prop-types';
import {BrowserRouter, Link} from "react-router-dom";

const Navbar = () => {
     return (
        <BrowserRouter>
            <nav>
                <ul>
                    <li><Link to='/'>Sağlık Hizmetim</Link></li>
                    <li><Link to='/contact'>İletişim</Link></li>
                </ul>
            </nav>
        </BrowserRouter>
        );
 };

 Navbar.propTypes = {};

 export default Navbar;

Это был мой компонент Navbar.

import React from 'react';
import {Route,BrowserRouter,Switch} from 'react-router-dom';
import Contact from "./Contact";
import Home from './Home';

const Routes = () => {
     return (
    <BrowserRouter>
        <Switch>
            <Route exact path='/' component = {Home}/>
            <Route path='/contact' component = {Contact}/>
        </Switch>
    </BrowserRouter>
);
 };

 export default Routes;

Это был мой компонент Route. Кроме того, я вызвал компонент маршрута и навигационной панели в App.js.

Попробуйте <Route exact path='/contact' component = {Contact}/>

Bhojendra Rauniyar 10.09.2018 17:41

Спасибо за ответ, но он не работает :(

Çağatay Sert 10.09.2018 17:42

вы пробовали <Link> <li>? наоборот?

Ricardo Costa 10.09.2018 17:56
Поведение ключевого слова "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
3
4 625
4

Ответы 4

В компоненте Навбар просто удалите <BrowserRouter>

Компонент Навбар:

import React from 'react';
import PropTypes from 'prop-types';
import {Link} from "react-router-dom";

const Navbar = () => {
  return (
    <nav>
      <ul>
        <li><Link to='/'>Sağlık Hizmetim</Link></li>
        <li><Link to='/contact'>İletişim</Link></li>
      </ul>
    </nav>
  );
};

Navbar.propTypes = {};

export default Navbar;

Компонент Маршруты:

import React from 'react';
import {Route,BrowserRouter,Switch} from 'react-router-dom';
import Contact from "./Contact";
import Home from './Home';
import Navbar from './Navbar';

const Routes = () => {
  return (
    <BrowserRouter>
      <div>
        <Navbar />
        <Switch>
          <Route exact path='/' component = {Home}/>
          <Route path='/contact' component = {Contact}/>
        </Switch>
      </div>     
    </BrowserRouter>
  );
};

export default Routes;

Надеюсь на эту помощь!

Вы не должны использовать <Link> вне <Router>

Çağatay Sert 11.09.2018 11:10

Может быть, в нашем приложении должен быть только один <BrowserRouter>. Вы должны попробовать вызвать компонент Navbar в <BrowserRouter> компонента Routes.

Ha Huu Tin 11.09.2018 11:15

Я меняю ссылки, которые находятся в компоненте навигационной панели, на тег href, и теперь он работает. :))

Çağatay Sert 11.09.2018 11:21

Я только что обновил свой ответ, можете проверить его еще раз!

Ha Huu Tin 11.09.2018 11:31

Попробуйте поставить ниже:

<a routerLink = "/contact" routerLinkActive = "active">{{Your data}}</a>

Вы должны использовать только один экземпляр маршрутизатора в приложении. Удалите BrowserRouter из компонента Navbar и попробуйте:

import React from 'react';
import PropTypes from 'prop-types';
import {BrowserRouter, Link} from "react-router-dom";

const Navbar = () => {
 return (
        <nav>
            <ul>
                <li><Link to='/'>Sağlık Hizmetim</Link></li>
                <li><Link to='/contact'>İletişim</Link></li>
            </ul>
        </nav>
    );
};

Navbar.propTypes = {};

export default Navbar;

эй, при удалении BrowserRouter я получил еще одну ошибку, в которой говорится: «Вы не должны использовать <Link> вне <Router>»

Çağatay Sert 11.09.2018 11:10

В вашем приложении должен быть только один экземпляр <BrowserRouter />. Удалите один из <Navbar /> и замените все ссылки на <NavLink /> следующим образом;

import React from "react";
import PropTypes from "prop-types";
import { NavLink } from "react-router-dom";

const Navbar = () => {
  return (
    <nav>
      <ul>
        <li>
          <NavLink to = "/">Sağlık Hizmetim</NavLink>
        </li>
        <li>
          <NavLink to = "/contact">İletişim</NavLink>
        </li>
      </ul>
    </nav>
  );
};

Navbar.propTypes = {};

export default Navbar;

Благодарю за ваш ответ. Но когда я меняю ссылки на навигационные ссылки и удаляю BrowserRouter, я получаю еще одну ошибку, в которой говорится: «Вы не должны использовать <Route> или withRouter () вне <Router>».

Çağatay Sert 11.09.2018 11:08

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