• 4
  • 新人请关照

react在一个函数式组件(非路由组件)中怎么手动跳转到另外一个路由组件?

用location.href的话页面刷新体验不太好。
尝试过使用创建createBrowserHistory实例,再使用push方法,但这样地址栏的url是更改了但是页面没跳转过去,必须要手动刷新

阅读 2.4k
评论
    2 个回答

    非路由组件也是可以使用withRouter()来获取对应history 属性吧

    clipboard.png

    这里的Base 是我自定义的

    RouteComponentProps 是从react-router-dom 包导入的

      答案是:useHistory

      import { useHistory } from "react-router-dom";
      
      function HomeButton() {
        let history = useHistory();
      
        function handleClick() {
          history.push("/home");
        }
      
        return (
          <button type="button" onClick={handleClick}>
            Go home
          </button>
        );
      }

      文档在这里

        撰写回答

        登录后参与交流、获取后续更新提醒

        相似问题
        推荐文章