Javascript React.js如何从功能组件访问路由器链接URL中的参数?

Javascript React.js如何从功能组件访问路由器链接URL中的参数?,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我可以通过以下方式从路由器URL访问params: ${this.props.match.params.id} 有没有一种方法可以从功能组件而不是类组件访问相同的参数?您可以使用: 您可以通过withRouter高阶组件访问历史对象的属性和最近的匹配。withRouter将在渲染时向包装组件传递更新的匹配、位置和历史道具 我可以访问它,但当我返回到上一个路径时,控制台中会出现内存泄漏警告,它建议在useEffect清理功能中取消所有订阅和异步任务以修复此问题。我真的不明白为什么会这样,不过还是要

我可以通过以下方式从路由器URL访问params:

${this.props.match.params.id}

有没有一种方法可以从功能组件而不是类组件访问相同的参数?

您可以使用:

您可以通过withRouter高阶组件访问历史对象的属性和最近的匹配。withRouter将在渲染时向包装组件传递更新的匹配、位置和历史道具


我可以访问它,但当我返回到上一个路径时,控制台中会出现内存泄漏警告,它建议在useEffect清理功能中取消所有订阅和异步任务以修复此问题。我真的不明白为什么会这样,不过还是要谢谢你!那你能给我们看一下全部代码吗?因为它可能位于使用useEffect挂钩的位置附近?这听起来值得再问一个问题。我建议您更新post或创建一个新的react hook相关问题好吧,我确实通过向useEffect()函数添加一个空数组作为第二个参数来解决了它,实际上我发布了一个类似的问题,上面警告的解决方案与链接中的相同,尽管错误不同。如果您仍然需要查看代码,请让我知道,我将发布一个
codesandbox
链接,我只是认为在问题已经解决时重新发布问题没有意义。:)不,没关系。我很高兴你已经解决了你的问题:)
import { withRouter } from 'react-router';

const Component = props => ...

// now you can access props.history|match|location
const ComponentWithRouteProps = withRouter(Component);