Как связать компоненты React внутри тега привязки

#javascript #reactjs

#javascript #reactjs

Вопрос:

У меня есть несколько компонентов и маршрутов в моем приложении. У меня есть боковое меню, в котором есть ссылки на другие компоненты моего приложения. Я попытался добавить компоненты, но это ничего не дает, это отображает пустую страницу. Не уверен, что я делаю не так. Любая помощь приветствуется.

Это мой Компонент:

 import React from 'react';
import AddNewFileMT from './AddNewFileMT';
import Home from '../routes/Home';

const SideMenu = () => {
    return (
        <div>
            <nav>
                <div>
                    <ul className="sidebar"> 
                        <br />  
                        <li>
                            <a href={<Home />}>Home<i className="fas fa-home"></i></a>
                        </li>
                        <li>
                            <a href={<Archive />}>Archive<i className="fas fa-archive"></i></a>
                        </li>
                        <li>
                            <a href={<AddNewFileMT />}>Add New<i className="fas fa-folder-open"></i></a>
                        </li>
                        <li>
                            <a href={<Analytics />}>Analytics<i className="fas fa-chart-pie"></i></a>
                        </li>
                    </ul>
                </div>    
            </nav> 
        </div>
    );
};

export default SideMenu;
 

Затем в моем Маршруте у меня есть это:

 import React from 'react'
import Header from '../components/Header'
import SideMenu from '../components/SideMenu'
import RegionalMap from '../components/RegionalMap'
import Footer from '../components/Footer'

export const Home = () => {
    return (
        <div>
            <Header />
            <SideMenu />
            <RegionalMap/>
            <Footer />
        </div>
    )
};

export default Home;
 

Это адрес в браузере при нажатии на элемент sidemenu:
http://localhost:3001 /[объект Object]

Ответ №1:

Вам необходимо установить react-router-dom

импортируйте маршрутизатор и маршрут, затем перенесите ваши страницы между <Router> тегами. Вот так:

 <Router>
  <Route component={componentHere} />
  ...
</Router>
 

затем импортируйте ссылку в панель навигации, оберните свои ссылки с <Link> помощью атрибута добавления <Link to={/yourComponentName} />

Подсказка: добавьте точный атрибут на свою домашнюю страницу, иначе весь URL-адрес будет перенаправляться на «/», который является вашей домашней страницей.

Комментарии:

1. Большое вам спасибо!

Ответ №2:

В качестве документации React вы можете использовать элемент Link вместо тега привязки. Например:

     <Link to="/about">About</Link>
 

Взгляните на официальную документацию об элементах ссылок

В вашем случае вы можете использовать

     <Link to={ ROUTES.HOME } key='Home'>Home</Link>