У меня была похожая проблема, когда я хотел, чтобы мои ссылки были в скользящей боковой панели.
вот способ, который я нашел, работал для меня.
Компонент "Маршруты": я импортировал компоненты, к которым я хотел бы направить, в мой компонент "Маршруты". Как показано ниже.
import React, {Component} from 'react'
import {BrowserRouter, Route, Link} from 'react-router-dom';
import Component from './component.js';
const routes = [
{
path: '/',
exact: true,
main: () => <place component here/>
},
{
path: '/dogs',
main: () => <place component here/>
},
{
path: '/cats',
main: () => <place component here/>
}
];
export default routes;
Компонент боковой панели. Затем я поместил свои ссылки в компонент боковой панели, как показано ниже.
import React from 'react';
import './SideDrawer.css';
import {BrowserRouter, Route, Link} from 'react-router-dom';
const sideDrawer extends Component{
render(){
return(
<nav className='sidebar'>
<ul>
<li><Link to='/'>Home</Link></li>
<li><Link to='/dogs'>Dogs</Link></li>
<li><Link to='/cats'>Cats</Link></li>
</ul>
</nav>
);
}
};
export default sideDrawer;
Затем в моем компоненте App.js, который будет отображать мою страницу, я сделал следующий импорт:
import React, {Component} from 'react';
import SideDrawer from './components/SideDrawer/SideDrawer';
import {BrowserRouter, Route, Link} from 'react-router-dom';
import routes from './components/routes/routes.js';
Затем включил следующее в мое заявление о возвращении.
return(
<div style={{height:'100%'}}>
<BrowserRouter>
<SideDrawer/>
<main>
{routes.map((route) => (
<Route
key={route.path}
path={route.path}
exact={route.exact}
component={route.main}
/>
))}
</main>
</BrowserRouter>
</div>
);
}
}
обратите внимание, что все внутри оператора возврата App.js заключено в тег BrowserRouter. Надеюсь, это поможет вам.