동영상을 보면서 react router dom 를 학습 중입니다.
useParam을 사용하여 url의 파라미터 값에 따라 화면 출력 내용이 변경되는 기능입니다.
Topics함수에서 만들어지는 li 태그를 클릭하면 topic_id 값에 따라
Topic함수에서 내용을 리턴해줍니다.
그런데 li 태그 클릭시 아무 반응이 없습니다.
url를 /topics/1 이 아닌 /topics/topics/1를 타고 들어가야 정상적으로 작동합니다.
영상에서는 React route dom 버전이 6버전 이전으로 알려주고 있지만
전 React route dom 최신버전으로 학습하고 있어 변경된 부분은 검색을 통해
수정해가며 진행 중인데 저 부분에서 막혀서 글을 올리게 되었습니다
어디 부분에서 수정해야 Topic 함수가 정상적으로 반응을 할까요?
function App()
{
}
function Topics() {
let list = [];
content.forEach((e) => {
list.push(
<NavLink to={“/topics/” + e.id}>{e.title}
);
});
return (
Topics
- {list}
<Route path=“/topics/:topic_id” element={}>
);
}
function Topic() {
console.log(1);
let params = useParams();
let topic_id = params.topic_id;
let selected_topic;
selected_topic = content.find((e) => {
if (e.id === Number(topic_id)) {
return e;
} else {
return {
title: “Sorry”,
description: “Not found”,
};
}
});
return (
{selected_topic.title}
{selected_topic.description}
);
}