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

Marimo
  • 4
新手上路,请多包涵

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

回复
阅读 3.6k
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>
  );
}

文档在这里

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏