# 类组件中如何使用路由和状态管理
由于我们的路由和状态管理采用了大量的use函数,而use函数只能在函数组件中使用,那么路由和状态管理该如何在类组件中应用呢?
可以利用高阶组件HOC的方式来解决这个问题,具体代码如下:
import React, { Component } from 'react'
import { useLocation, useNavigate, useParams } from "react-router-dom";
import { useSelector, useDispatch } from 'react-redux'
function withRouter(Component) {
function ComponentWithRouterProp(props) {
let location = useLocation();
let navigate = useNavigate();
let params = useParams();
let count = useSelector((state)=> state.users.count)
let dispatch = useDispatch()
return (
<Component
{...props}
router={{location, navigate, params}}
store={{count, dispatch}}
/>
);
}
return ComponentWithRouterProp;
}
class App extends Component {
handleToCount = () => {
this.props.store.dispatch({
type: 'users/inc'
})
}
handleToAbout = () => {
this.props.router.navigate('/about')
}
render() {
return (
<div>
<h2>App</h2>
<button onClick={this.handleToCount}>点击</button>
<button onClick={this.handleToAbout}>跳转</button>
{this.props.store.count}
</div>
)
}
}
export default withRouter(App)
← 路由加状态管理的登录拦截综合案例 章节总结 →