Задать вопрос
@denis_21321321

При использовании NavLink путь ставится поверх другого?

При нажатии, например, на message, изменяется правильно путь(beta-site/modernWelcome/messages), но если нажать на friends, вместого того, чтобы стать beta-site/modernWelcome/friends он изменяется на beta-site/modernWelcome/modernWelcome/friends, если сделать <NavLink to='/message'>Message</NavLink> , тогда он правильно изменяется, но мне нужно с modernWelcome.
Страница находится на пути beta-site/modernWelcome .
5f6ddf27cdcd6243364537.png после 5f6ddf31b10d2266733281.png

const App = (props) => {
    return (
        <Router>
            <div>
              <Route exact path='/modernWelcome/friends' render={() => <Friends friends={props.state.friends}/>}/>
              <Route exact path='/modernWelcome/messages' render={() => <Messages messages={props.state.messages}/>}/>
              <NavLink to='modernWelcome/messages'>Message</NavLink>
              <NavLink to='modernWelcome/friends'>Friends</NavLink>
            </div>
        </Router>

    )
};
  • Вопрос задан
  • 152 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Пригласить эксперта
Ответы на вопрос 2
Zhanna_K
@Zhanna_K
in progress
Зачем использовать Route и Navlink на одном уровне?

const App = () => {
  return (
    <div>
      <Route exact path='/modernWelcome' component={MainPage} />
      <Route exact path='/modernWelcome/messages' component={Messages} />
     <Route exact path='/modernWelcome/friends' component={Friends} />
    </div>
  );
};


И в компоненте MainPage уже будут навлинки
const MainPage = (props) => {
  return (
    <div>
      <h1>MainPage</h1>
      <NavLink to='modernWelcome/messages'>Message</NavLink>
      <NavLink to='modernWelcome/friends'>Friends</NavLink>
    </div>
  );
};


Все должно работать как нужно
Ответ написан
Комментировать
kirbi1996
@kirbi1996
Navlink используется если не ошибаюсь в меню, чтобы была возможность подсвечивать его, хотя это можно достичь и другими методами. А на одном уровне с роутами должны использлвться роуты. Для обхода совпадений можно добавить атрибут exact
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽