React Router useParams挂钩返回空对象

时间:2020-04-01 14:29:35

标签: reactjs react-router

我遇到了一个问题,即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,这应该可以工作。

1 个答案:

答案 0 :(得分:4)

我认为您有问题,因为您使用的是Router而不是Route