Javascript 有没有办法在页面刷新时强制react router dom重定向页面?

Javascript 有没有办法在页面刷新时强制react router dom重定向页面?,javascript,reactjs,react-router-dom,Javascript,Reactjs,React Router Dom,我正在react应用程序上使用react路由器dom进行网站构建。我想知道,当一个人选择刷新页面时,是否可以重定向当前页面 以下是提示用户刷新页面的工作代码(我在另一篇堆栈溢出文章中发现): window.addEventListener(“beforeunload”,函数(e){ let confirmationMessage='看起来您正在编辑某些内容。' +“如果您在保存前离开,测试将丢失。”; (e | | window.event).returnValue=确认消息; 返回确认消息;

我正在react应用程序上使用react路由器dom进行网站构建。我想知道,当一个人选择刷新页面时,是否可以重定向当前页面

以下是提示用户刷新页面的工作代码(我在另一篇堆栈溢出文章中发现):

window.addEventListener(“beforeunload”,函数(e){
let confirmationMessage='看起来您正在编辑某些内容。'
+“如果您在保存前离开,测试将丢失。”;
(e | | window.event).returnValue=确认消息;
返回确认消息;

});这种方法的问题是,如果用户直接导航到该路线,例如,因为他们将该路线添加到书签或在url栏中手动输入该路线,则该方法将不起作用

我会用不同的方法来解决这个问题。在
/data collection
上呈现的组件应检查所需值是否可用,如果没有,则重定向到允许您输入所需数据的页面(或另一个正常默认值)。诸如此类:

const DataGathering = ({data}) => {
  if (!data) return <Redirect to="/enter-data" />

  // ... render whatever should be rendered if data is already there

}
const数据收集=({data})=>{
如果(!数据)返回
//…呈现数据已存在时应呈现的内容
}
当然,如果用户试图离开或刷新页面以警告他们数据丢失,您仍然可以显示警告。但是您不必重定向它们,因为组件在没有所需数据的情况下渲染时会这样做