我遇到了一个问题,即React Router无法使用useParams
钩子获取参数。当转到路线/view/12345
(浏览器路径包括基本名称/pending-nominations/view/12345
)时,console.log()
在{}
处记录一个空对象,该对象应显示id
例如。 {id: 12345}
const SingleRecognition = (props) => {
let params = useParams();
console.log("SingleRecognition -> params", params)
return (
<div>
id:
</div>
);
}
function App() {
return (
<Provider store={store}>
<ThemeProvider theme={theme}>
<Router basename="/pending-nominations">
<PageNav/>
<Switch>
<Route path="/history">
<History/>
</Route>
<Router path="/view/:id">
<SingleRecognition/>
</Router>
<Route path="/">
<PendingRecognitions/>
</Route>
</Switch>
</Router>
</ThemeProvider>
</Provider>
);
}
看示例https://reacttraining.com/react-router/web/api/Hooks/useparams,这应该可以工作。
答案 0 :(得分:4)
我认为您有问题,因为您使用的是Router
而不是Route
。