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>
  • Вопрос задан
  • 278 просмотров
Решения вопроса 2
Alexandroppolus
@Alexandroppolus
кодир
сериализовать нужные параметры в url, а внутри ArcticleItem выловить через useParams. Это самый здравый и каноничный вариант.

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

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

Войти через центр авторизации
Похожие вопросы