我正在使用Reactjs.I當他點擊後退按鈕時要警告用戶。 我所母鹿是ReactJs瀏覽器後退按鈕
handleWindowClose = (ev) => {
ev.preventDefault();
return ev.returnValue = 'Leaving this page will loose data';
}
componentDidMount =() => {
window.addEventListener('beforeunload',this.handleWindowClose);
}
componentWillUnmount =() => {
window.removeEventListener('beforeunload',this.handleWindowClose);
}
但是這並不後退按鈕click.So我試着這樣做
handleWindowClose = (ev) => {
ev.preventDefault();
return ev.returnValue = 'Leaving this page will loose data';
}
onBackButtonEvent = (e) => {
e.preventDefault();
if(confirm("Do you want to loose this data")){
window.history.go(0);
}else {
window.history.forward();
}
}
componentDidMount =() => {
window.addEventListener('beforeunload',this.handleWindowClose);
window.addEventListener('popstate',this.onBackButtonEvent);
}
componentWillUnmount =() => {
window.removeEventListener('beforeunload',this.handleWindowClose);
window.removeEventListener('popstate',this.onBackButtonEvent);
}
我沒有使用react-router.Is有沒有更好的方式做工作這隻使用react.Also我希望窗口留在該頁面上,而不使用history.forward(),因爲我將失去窗口狀態。
任何不想使用'react-router'的好理由? –