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

Как изменять props в react-router-dom v6?

Как сделать так, в react-router-dom v6, чтобы при нажатии на Link в тот шаблонный компонент что в Route передавались пропсы с компонента в котором Link?
Код:
<Routes>
     <Route path="/article" element={<ArcticleItem article="Hi!" />} />
</Routes>

<Link to="/article">
   <div className={s.itemArticleHeader}>
       <span>{articleHeader}</span>
   </div>
</Link>
  • Вопрос задан
  • 375 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 2
Alexandroppolus
@Alexandroppolus
кодир
сериализовать нужные параметры в url, а внутри ArcticleItem выловить через useParams. Это самый здравый и каноничный вариант.

если что-то не сериализуемое, то надо передавать через стейт-манагер или ещё как-то.
Ответ написан
Комментировать
@karminski
Senior React.JS Developer
Пропсы вверх по DOM дереву не меняются. Чтобы реализовать схожий функционал, вам нужно воспользоваться контекстом (useState, useContext). В верхнем компоненте объявляете стейт (state, setState), в нижние компоненты через Context.Provider передаете этот стейт (state, setState). В нижних компонентах используете useContext для получения стейта сверху. Теперь чтобы изменить стейт верхнего компонента у вас есть setState из контекста. Надеюсь понятно объяснил.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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