React-router-dom拿不到url parameter
来源:9-4 页面路由参数的传递
archi979
2022-03-02
老师, 请问取页面路由参数的时候, 这些方法都不好使:
- 您课程中提到的
this.props
并不包括.match这个属性 - 问答中, 您提到可以用
withRouter
, 使用时出现下列的错误: - 如果用useParams, 也有错误: 只能用在function component, 不能用在class component
请问现在的react-router-dom, 应该用什么方式拿url parameter呢?
谢谢老师
写回答
1回答
-
04207214adai
2022-03-02
react-router-domV6中弃用了库提供的HOC(withRouter),如果想要使用这个功能,我们需要自定义withRouter。本身V6版本中提供的这些功能是基于函数式组件的,如果想要在类组件中使用,可以自定义HOC。代码如下:
export function withRouter( Child ) { return ( props ) => { const location = useLocation(); const navigate = useNavigate(); return <Child { ...props } navigate={ navigate } location={ location } />; }}
参考链接:https://cloud.tencent.com/developer/ask/sof/296970
或者还有个办法,将"react-router-dom"的版本进行回退,回退到V5.x版本,相应的问题就能得到解决022022-11-10
相似问题