Я использую роутер v4 в своем приложении и не могу перейти на v5.
Я хотел бы использовать ловушку useHistory
(https://github.com/ReactTraining/react-router/blob/master/packages/react-router/modules/hooks.js) с v5.
Итак .. Я решил написать сам.
Мой код:
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/