【问题标题】:Cannot read params in react router无法读取反应路由器中的参数
【发布时间】:2020-09-23 16:31:28
【问题描述】:

我开始遇到 react-router 的问题,我无法读取它的参数:

这是代码:

 function App() {

const matchSample = useRouteMatch("/test/:id");

let { id } = useParams();

console.log("id", id);

return (
    <>
        {matchSample && <Home />}
    </>
)


 }

   const _ = withRouter (App);
   export { App };

我的应用程序已经在基础上安装了路由器:

     <React.Fragment >
        <CssBaseline />
        <Provider store={store}>
            <Router>
                <MuiThemeProvider theme={theme}>
                    <App />
                </MuiThemeProvider>
            </Router>
        </Provider>
    </React.Fragment>

我不确定是否需要添加 withRouter 作为我的函数的包装器,但即使有或没有结果都是一样的:未定义。

【问题讨论】:

  • 你只需要一条路线?
  • 不,我需要更多路线。这只是一个简化示例。
  • 你有定义像 之类的路由吗?跨度>
  • 我没有。这个“{matchSample && }”是不是要代替Switch?这就是我的想法。
  • 有人对此有任何想法吗?

标签: reactjs react-router react-router-dom


【解决方案1】:

事实证明,为了能够传播道具,Switch 是强制性的。如果不提供 Switch 则 useParams 和 rest 无法工作。

如果有人知道不使用 Switch 但让 useParams 工作的选项,请告诉我.. 在那之前我必须重新添加 Switch。

【讨论】:

    猜你喜欢
    • 2022-11-20
    • 1970-01-01
    • 2018-05-31
    • 2017-06-14
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多