Как создать пользовательский хук useHistory в Reaction v4 - PullRequest
0 голосов
/ 02 апреля 2020

Я использую роутер 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/

...