Отлов url (React.js)

Почему может не работать router при использование NavLink. Если без NavLink всё работает, с ним вроде url меняется но смена компонентов не происходит. Помогите решить проблемку.

const Nav = () => {
    return (
        <nav>
            <BrowserRouter>
                <div className={navStyle.nav}>
                    <ul>
                        <li><NavLink to="/profile">Главная</NavLink></li>
                        <li><NavLink to="/news">Новости</NavLink></li>
                        <li><NavLink to="/message">Сообщения</NavLink></li>
                        <li><NavLink to="/music">Музыка</NavLink></li>
                        <li><NavLink to="/setting">Настройки</NavLink></li>
                    </ul>
                </div>
            </BrowserRouter>
        </nav>
    );
}


const Main = () => {
    return (
        <main>
            <BrowserRouter>
                <div className={mainStyle.main}>
                    <Route path="/profile" component={Profile}/>
                    <Route path="/message" component={Message}/>
                    <Route path="/news" component={News}/>
                    <Route path="/music" component={Music}/>
                    <Route path="/setting" component={Setting}/>
                </div>
            </BrowserRouter>
        </main>
    );
}


Ответы (1 шт):

Автор решения: BrainBoom
  1. И ваши navLink и Route компоненты должны находиться внутри одного BrowseRouter.
  2. Компоненты Route Должны лежать внутри одного компонента Switch, который также можно экспортировать из библиотеки react-router-dom
→ Ссылка