@mrrangerr

Как создать динамические роуты?

Всем привет, использую react-router 3 версии. Из бэка прилетают массив объектов, у каждого объекта есть айди и тд
С помощью map прохожусь в компоненте List по массиву и создаю список. Теперь вопрос, как создать динамические роуты для отдельного элемента списка?

<Route path="/notifications/list">
                <IndexRoute component={withTraceLogging(Notifications)} />
                <Route path='/notifications/:typeId' component={NotificationListItems} />
 </Route>
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ответы на вопрос 1
@iamsergo
Вам надо создать два роута:
Для спсиска :
<Route path='/notifications' component={NotificationsList} />

Для конкретного элемента :
<Route path='/notifications/:typeId' component={ConcreteNotification} />


Внутри ConcreteNotification нужно извлечь параметр typeId и запросить определенный элемент по этому параметру, если надо запрашивать, если не надо, можете извлечь по typeId элемент из стора.

С помощью хуков делается так:
const { typeId } = useParams()

Если надо запрашивать данные:
useEffect(() => fetchNotification(typeId), [])

Если не надо:
const notification = useSelector(s => s.notifications.data.find(n => n.typeId === typeId))
Ответ написан
Ваш ответ на вопрос

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

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