【发布时间】:2026-02-18 16:25:01
【问题描述】:
我正在尝试根据在前端为我的 react 应用程序使用 url 中的唯一 ID 从我的 django 后端访问特定数据。我希望看到期刊的正文
相反,我得到了这个错误: TypeError: Cannot read properties of undefined (reading 'params')
我尝试改用“useParams”,但它会导致更多错误。我也在 SO 上发现了类似的问题,但他们提到使用“道具”,这是我应该尝试的方法吗?
编辑:here 是我使用元素而不是组件的一个示例。
我的 App.js
import {
BrowserRouter, Routes,
Route, Router,
} from "react-router-dom";
import './App.css';
import Header from './components/Header'
import JournalDashboard from './pages/JournalDashboard'
import JournalPage from './pages/JournalPage'
function App() {
return (
<div className="App">
<BrowserRouter>
<Header />
<Routes>
<Route path="/" exact element={<JournalDashboard/>}></Route>
<Route path="/journals/:id" element={<JournalPage/>} ></Route>
</Routes>
</BrowserRouter>
</div>
);
}
export default App;
我的 JournalPage.js
import React, { useState, useEffect } from 'react'
const JournalPage = ({ match }) => {
let journalId = match.params.id
let [journal, setJournal] = useState(null)
useEffect(() => {
getJournal()
}, [journalId])
let getJournal = async () => {
let response = await fetch(`/api/journals/${journalId}/`)
let data = await response.json()
setJournal(data)
}
return (
<div>
<p>{journal?.body}</p>
</div>
)
}
export default JournalPage
提前致谢
【问题讨论】:
标签: reactjs django django-rest-framework react-router-dom dynamic-url