reactjs - 如何在类中从react-router-dom v6获取参数值

标签 reactjs react-router-dom

我正在使用 react-router-dom v6,不知道如何获取参数值

例如:http://localhost:3000/user/:id

我想获取:id

有人使用 hook useParams 获取,但我正在使用类,所以我不能使用 hook。

最佳答案

库提供的 HOC withRouter 已在 React Router v6 中弃用。如果您需要使用 v6 并且正在使用基于类的 React 组件,那么您将需要编写自己的 HOC 来包装 v6 use* Hook 。

例如:

export function withRouter( Child ) {
  return ( props ) => {
    const location = useLocation();
    const navigate = useNavigate();
    return <Child { ...props } navigate={ navigate } location={ location } />;
  }
}

如果您有一个需要迁移到 v6 的大型代码库,但还没有将所有基于类的组件迁移到函数式组件中,这将很有用。

这是基于开发团队的建议,如 Github 问题所述:https://github.com/ReactTraining/react-router/issues/7256

关于reactjs - 如何在类中从react-router-dom v6获取参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62365009/

相关文章:

javascript - 如何使用 react-router-dom 防止浏览器返回并保持状态

javascript - React Router Dom v6 HashRouter basename 不工作

reactjs - 在我的 React 项目中未捕获 TypeError : Object is not iterable (cannot read property Symbol(Symbol. 迭代器))

javascript - 在组件中生成随机值时的 Next.js/React 警告

javascript - 缩放、旋转和平移后 Canvas 绘制点定位于单击区域

reactjs - 如何为 Apollo 的 React HOC 定义 props 接口(interface)?

reactjs - react : Nested defaultProps deep merge

reactjs - 使用react-router检测路由变化

javascript - 所有路线上均不匹配 404 路线渲染 : react-router-dom

javascript - 在react-router-dom中分离路由的最佳方法是什么?