#reactjs #react-router #navbar #react-router-dom
#reactjs #реагирующий маршрутизатор #панель навигации #react-router-dom
Вопрос:
Я использую пользовательскую библиотеку навигационной панели, которую я нашел в NPM, для рендеринга моей навигационной панели, но navlinks
в пользовательской навигационной панели они не работают. Когда я нажимаю на ссылки, маршрут обновляется в адресной строке, но компонент не отображается. Хотя при использовании простого списка я могу отобразить все маршруты.
Пример CodeSandbox для репликации
function App() {
return (
<React.Fragment>
/* This custom navbar is not working for routing */
<Navbar></Navbar>
/* This list is working fine for routing */
{/* <ul>
<li>
<NavLink to='/'>Home</NavLink>
</li>
<li>
<NavLink to='/about'>About</NavLink>
</li>
<li>
<NavLink to='/contact'>Contact</NavLink>
</li>
</ul> */}
<Switch>
<Route exact path='/' component={Home} />
<Route path='/about' component={About} />
<Route path='/contact' component={Contact} />
</Switch>
</React.Fragment>
);
}
Это пользовательский компонент панели навигации, который я использую: Пользовательская панель навигации
Комментарии:
1. Можете ли вы предоставить ссылку на изолированную среду с той же проблемой
2. Есть ли у вас компонент «Маршрутизатор» для этого?
3. @Syder да, я завернул компонент приложения с помощью BrowserRouter в index.js
4. @GayatriDipali Я добавил пример codesandbox для репликации сейчас: codesandbox.io/s/intelligent-http-sswgt?file=/src/App.js
5. Я думаю, это проблема с пакетом, ссылка на проблему open github: github.com/Nazeh-Taha/react-responsive-animate-navbar/issues/4 , может быть, вы сможете найти там помощь
Ответ №1:
вы можете забыть обернуть свой код с <Router> or <BrowserRouter>
помощью .
Примерьте:
import {BrowserRouter, Router} from "react-router-dom";
<BrowserRouter>
<React.Fragment>
...
</React.Fragment>
</BrowserRouter>
или
<Router>
<React.Fragment>
...
</React.Fragment>
</Router>
Комментарии:
1. вы пробовали свое решение?
2. как я уже сказал в своем описании, я уже обернул компонент приложения с помощью BrowserRouter. Так что я думаю, что это не сработает, мой друг. Пожалуйста, проверьте пример песочницы кода, который я добавил.
3. Я просмотрел ваш код @PR7 в поле Codesandbox. Да, я понятия не имею, почему маршрутизатор не работает. Извините.
4. @AlmazAtun без проблем 🙂 Возможно, с этим пакетом NPM возникла какая-то проблема, поскольку на github есть некоторые открытые проблемы для этого репозитория.