相关疑难解决方法(0)

使用react-router检测用户离开页面

我希望我的ReactJS应用程序在导航离开特定页面时通知用户.特别是弹出消息,提醒他/她做一个动作:

"更改已保存,但尚未发布.现在就这样做吗?"

我应该react-router全局触发这个,还是可以从反应页面/组件中完成?

我没有在后者身上找到任何东西,我宁愿避开第一个.除非它当然是标准,但这让我想知道如何做这样的事情,而不必将代码添加到用户可以去的每个其他可能的页面..

欢迎任何见解,谢谢!

reactjs react-router

74
推荐指数
5
解决办法
5万
查看次数

在 react-router-dom v6 中使用历史记录

**我使用 react-router-dom 版本 6,当我使用 this.props.history.push('/UserDashboard') 它不起作用,我用 const history = createBrowserHistory(); history.push('/UserDashboard') 但我仍然有一个问题,当我想重定向到 '/UserDashboard' 只是链接发生变化而页面仍然是第一个??

有什么帮助吗??**

    handleSubmit(event){
   

    event.preventDefault();
    const history = createBrowserHistory();
    axios({
      method: "POST", 
      url:"http://localhost:3001/users/login", 
      data:  this.state
    }).then((response)=>{
      console.log(response.data.user.admin)
      if (response.data.success === true && response.data.user.admin === false){
       
              const history = createBrowserHistory();
              history.push({
               pathname:"/users",
               state:{
               Key : response.data.user }
 });

    
       
      }else if(response.statusCode === 401 ){
        alert("Invalid username or password");
       window.location.reload(false);
      }
    })
  }
Run Code Online (Sandbox Code Playgroud)

我的 routes.js 文件:

import React from 'react';
import { Navigate } from 'react-router-dom';
import DashboardLayout from './Pages/DashboardLayout';
import …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router-dom

2
推荐指数
7
解决办法
4316
查看次数