当您按下后退按钮浏览器时,如何显示反应中的模态?

时间:2018-07-19 09:06:12

标签: reactjs browser-history

当用户想要离开指定页面时,我需要显示一个模式。 当用户想要转到页面上的其他链接时,我可以使用getUserConfirmation来解决此问题:

const getUserConfirmation = (message, callback) => {
const history = createBrowserHistory({
     forceRefresh: true
     })

 if (history.location.pathname == "/add/car") {
     store.dispatch(showModal('ConfirmationLeavingAddPageModal', { callback }));
 }
 }

问题是,当我按浏览器上的后退按钮时,它不再起作用。 接受任何帮助吗?

1 个答案:

答案 0 :(得分:1)

对于react-router 2.4.0 +

componentDidMount() {
    this.props.router.setRouteLeaveHook(this.props.route, () => {
        if (history.location.pathname == "/add/car") {
            store.dispatch(showModal('ConfirmationLeavingAddPageModal', {
                callback
            }));
        }
    })
}

此外,您需要import { withRouter } from 'react-router'export default withRouter(YourComponent)