javascript 在切换路由时强制window.location.reload()一次

b1payxdu  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(337)

useEffect Hook执行3个生命周期,即**[componentDidMount、componentDidUpdate和componentWillUnmount]**。
有了这个,我试图重新加载我的页面只有一次,如果Country页面被访问。
https://codesandbox.io/s/angry-nash-rc98mw?file=/src/index.js

**问题:**如何使用路由使其工作。

root.render(
  <BrowserRouter>
    <Routes>
      <Route path="/" Component={App} />
      <Route path="/country" Component={Country} />
    </Routes>
  </BrowserRouter>
);

如果可以帮助回答以下职位。我会很感激。
https://github.com/WICG/webcomponents/issues/754

所以我能想到的解决办法是
重新加载页面。
我已经使用react-to-webcomponent创建了我的自定义元素

6rqinv9w

6rqinv9w1#

我应该解决:forceRefresh={true}

<Route path="/country" forceRefresh={true} Component={Country} />

更多信息:https://www.oreilly.com/library/view/react-router-quick/9781789532555/233f59d9-5f18-4ea8-a7f9-cd9b27435025.xhtml
但在这里找到了堆栈溢出的建议:How to refresh page with React Router?
我无法验证它,因为我需要的console.log()是在沙箱上不可用。
然而,正如问题的注解中所指出的,我认为这是代码中另一个bug的糟糕解决方案(你的示例中没有包含这个bug,可能应该解决它)。重新加载整个页面会让你失去React的好处。

相关问题