Я пишу приложение React. Мне нужно захватить параметры URL-адреса, используя useParams().
Ниже приведен соответствующий код:
import { BrowserRouter as Router, Route, Routes , useParams} from 'react-router-dom';
function App() {
const {id} = useParams();
console.info(id)
};
return (
<Router>
<Routes>
<Route path = ":id" element = {<Form/>} >
</Route>
</Routes>
</Router>
);
}
export default App; Однако console.info возвращает неопределенное значение. Есть предположения?
я тоже пробовал
const id = useParams(); // did not destructure idи я пытался
<Route path = "/:id" element = {<Form/>} > //added forward slash before :idКогда я нахожусь на localhost:3000/xhyz1, ожидаемый вывод console.info равен xhyz1.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Не удается получить доступ к идентификатору в компоненте app, поскольку маршрут установлен для компонента form.
Переместите параметр использования внутри компонента формы
function Form() {
const {id} = useParams();
При использовании useParams вы должны сопоставить деструктуру const {id} = useParams(); с вашим путем "/path/:id".
import { useParams } from "react-router-dom";
export default function fn() {
const { id } = useParams();
console.info("this.context:", id )
return (
<div className = "....">
{/* render something based on id */}
</div>
)
}