【问题标题】:useParams returns undefined after destructurization解构后 useParams 返回 undefined
【发布时间】:2022-10-30 09:53:12
【问题描述】:

即使在解构之后,使用 useParams() 时,我也会返回一个未定义的变量。 我完成了所有其他解决方案,但对我没有任何作用。

const App = () => {
  return (
    <div className="container">
      <Router>
        <Routes>
          <Route path="/" element={PageRender()}/>
          <Route path="/:page" element={PageRender()} />
          <Route path="/:page/:slug" element={PageRender()} />
        </Routes>
      </Router>
    </div>
  )
}

这就是我的 PageRender 函数。解构变量与路径中的相同

const PageRender = () => {
  const { page, slug } =  useParams();
  console.log(page)

  let name = '';

  if(page){
    name = slug ? `${page}/[slug]` : `${page}`
  }
  console.log(name)

  return generatePage(name)
}

在尝试了许多解决方案后,它仍然返回 undefined

【问题讨论】:

    标签: reactjs typescript


    【解决方案1】:

    #useParams 仅在反应函数中工作。在您的示例中,您正在调用该函数而不是将其传入。

    试试这个:

    <Route path="/" element={<PageRender />}/>
    

    您没有共享#generatePage 的代码,但我假设它返回一些反应节点/元素。

    【讨论】:

      【解决方案2】:

      你能向我解释一下这段代码是如何工作的吗?我不知道 Pagerender

      【讨论】:

      猜你喜欢
      • 2021-03-29
      • 1970-01-01
      • 2022-12-22
      • 2021-07-12
      • 1970-01-01
      • 2021-10-05
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多