在react中使用 useParams 钩子

IT技术 reactjs react-hooks
2021-04-10 05:03:54

我正在学习 useParams hook in react。我有一个这样的网址,需要能够从中提取字母 9。

    http://localhost:3010/9/solution

我该怎么办?

2个回答

我假设您使用的是react-router,如果您定义这样的路由,例如:

<Route path="/:id/about">
 <About />
</Route>

请注意,您使用此 :id 符号定义路径,这意味着 id 将是此特定情况下的参数。然后你创建一个 Link 组件

<Link to="/2/about">About</Link>

在你的组件中,在这个例子中是 about 组件,你可以像这样使用钩子:

function About() {
 const { id } = useParams();
 return (
  <div>
   <h2>Now showing post {id}</h2>
  </div>
 );
}

如果你想检查结果https://codesandbox.io/s/react-router-basic-nv8pn,我有这个代码沙箱

是的,这应该有效,它使用的是 react-router-dom
2021-05-28 05:03:54
我想在组件加载时执行此操作。我需要在 useEffect 中还是在功能组件之外执行此操作?
2021-06-11 05:03:54
你到底想做什么?你可以放入 useEffect 但是你打算用那个 id 做什么?
2021-06-11 05:03:54
我正在使用 react-router-dom
2021-06-13 05:03:54
我将使用它与 useSelector 从我的状态中检索一个对象
2021-06-21 05:03:54

假设您正在使用react-router,那么您应该在 React 应用程序中使用浏览器路由器:https : //reacttraining.com/react-router/web/api/BrowserRouter

然后声明一条路线,如:

<Route path="/{id}/solution" component={Component} />

然后在您的组件中,您将能够使用它:

const { id } = useParams();
我需要在 useEffect 中还是只在功能组件中声明上面的语句。我想在组件加载时获得这个值
2021-06-06 05:03:54