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

Хук useParams при тестировании React компонента выдает undefined, как исправить?

Есть компонент который получает идентификатор по URL используя хук useParams?
import {useParams} from "react-router-dom";

function SingleVideo() {
    const {id} = useParams();


Есть route к данному компоненту:
<Route path="/v/:id" component={SingleVideo} />

Код который использовал для тестирования:
const history = createMemoryHistory()
    const route = `/v/${contentBackup['video-list'][0]['video_id']}`;
    history.push(route)

    render(
        <Router path={`/v/${contentBackup['video-list'][0]['video_id']}`} history={history}>
            <SingleVideo />
        </Router>,
    );


Проблема в том, что при тестировании - useParams возвращает undefined. Как это исправить?
  • Вопрос задан
  • 686 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@markak
Frontend developer
Вы передаете атрибут path в компонент Router, но нужно передавать этот атрибут в компонент Route

https://v5.reactrouter.com/web/api/Route - по доке есть атрибут path
https://v5.reactrouter.com/web/api/Router - по доке нет атрибута path

также используйте базовый пример из доки:
https://v5.reactrouter.com/web/example/basic
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽