react-router中的Link和`window.history.pushState()`之间有什么区别?

问题描述 投票:0回答:1

在我的代码中,当我单击按钮组件Aaaaa时未重新渲染,但是当我点击链接组件Aaaaa时被重新渲染。我找不到原因吗?

function App() {
  return (
    <>
        <button onClick={() => window.history.pushState('','','/about')}>About</button>
        <Link to='/about'>to About</Link>
        <Aaaaaa/>
    </>
  );
}

和:

Aaaaaa(){
   const location = useLocation()
   return <div>About </div>
}
reactjs react-router
1个回答
0
投票

[正确的方法是在尝试手动导航(通过单击按钮)时使用<Link to='/about'>to About</Link>,在试图自动导航(例如完成API调用之后)时使用window.history.pushState('','','/about')

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.