【发布时间】:2021-11-24 03:25:39
【问题描述】:
我有一个带有 Material-UI 的 React 表单。我想使用 useParams 从 URL 链接中获取 id 并发出一些 API 请求以填充表单数据:
http://localhost:3001/ticket-profile/9459377
主app.tsx:
function App() {
return (
<Router>
<Navbar />
<Switch>
<Route path='/ticket-profile/:id' component={TicketProfile} />
</Switch>
</Router>
);
}
我使用此代码打开一个新页面并传递id参数:
history.push(`/ticket-profile/${id}`)
我需要把数据放到这个页面中:
export default function TicketProfile(props: any) {
let { id } = useParams();
const [ticket, setTicket] = useState<TicketDTO[]>([]);
useEffect(() => {
getSingleTicket();
}, []);
const getSingleTicket = async () => {
getTicket(id)
.then((resp) => {
setTicket(resp.data);
}
但是对于这一行 let { id } 我明白了:
TS2339: Property 'id' does not exist on type '{}'.
你知道我该如何解决这个问题吗?
【问题讨论】:
-
试试
useParams<{id: string}>()或类似的东西 -
你必须在Router的TicketProfile的props中传递id路由参数
标签: javascript reactjs typescript react-router react-router-dom