如何在React v4中创建自定义钩子useHistory

时间:2020-04-02 08:44:06

标签: javascript reactjs react-router react-hooks

我在应用中使用的是路由器v4,无法升级到v5。

我想使用v5中的钩子useHistoryhttps://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/

0 个答案:

没有答案