我在应用中使用的是路由器v4,无法升级到v5。
我想使用v5中的钩子useHistory
(https://github.com/ReactTraining/react-router/blob/master/packages/react-router/modules/hooks.js)。
所以..我决定自己写。
我的代码是:
import { useState, useEffect } from 'react';
import { withRouter } from 'react-router-dom';
const useHistory = (props: any) => {
const { history: routerHistory } = props;
const [history, setHistory] = useState(null);
useEffect(() => {
setHistory(routerHistory);
}, [routerHistory]);
return history;
};
export default withRouter(useHistory);
以及第二部分:
const {history} = useHistory();
history.push(...)
但是,似乎有什么建议吗?
jsfiddle https://jsfiddle.net/4gqkbxmw/