我希望我的ReactJS应用程序在导航离开特定页面时通知用户.特别是弹出消息,提醒他/她做一个动作:
"更改已保存,但尚未发布.现在就这样做吗?"
我应该react-router
全局触发这个,还是可以从反应页面/组件中完成?
我没有在后者身上找到任何东西,我宁愿避开第一个.除非它当然是标准,但这让我想知道如何做这样的事情,而不必将代码添加到用户可以去的每个其他可能的页面..
欢迎任何见解,谢谢!
**我使用 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)