美文网首页
react中实现路由切换时离开页面确认弹窗提示

react中实现路由切换时离开页面确认弹窗提示

作者: 麦曦 | 来源:发表于2020-05-08 17:18 被阅读0次

弹窗前确认

一、需要离开提示页面上添加
a.引入Prompt

import { Prompt } from 'react-router-dom';

b.在页面中添加组件,可在render内任一地方添加
<Prompt message='商家信息还未保存,是否离开?' when={true} />

render(){
    return <Prompt message='商家信息还未保存,是否离开?' when={true} />
}

二、在路由页面进行配置
a.Router上添加 getUserConfirmation={getConfirmation}

<Router getUserConfirmation={getConfirmation} >

b.在路由页面添加方法

function getConfirmation(message, callback) { // 至关重要的callback方法,可以异步执行
    if (!window.pageChangeConfirm) { // G.pageChangeConfirm为页面内的全局变量,用于数据交互与条件判断
        callback(true);
        return;
    }
    Modal.confirm({
        title: '离开该页面,表单信息将不被保留?是否确定离开该页面?',
        content: '',
        okText: '离开',
        cancelText: '取消',
        onOk() {
            callback(true);
        },
        onCancel() {
            callback(false);
        },
    });
}

三、触发弹窗
通过设置window.pageChangeConfirm,触发是否弹窗。
例:在componentDidMount设置默认离开是否弹窗。 也可在点击页面时触发修改弹窗参数

 if (isEdit) {
     window.pageChangeConfirm = true;
 }

相关文章

  • react中实现路由切换时离开页面确认弹窗提示

    弹窗前确认 一、需要离开提示页面上添加a.引入Prompt b.在页面中添加组件,可在render内任一地方添加 ...

  • 外传系列-各种疑难杂症

    记录一下实现过程中遇到的一些坑。 单页面应用路由404 我们使用React Router 来实现路由跳转时,会遇到...

  • 20-03-26 页面过渡跳转

    重点: 1、判断路由前进还是后退 2、切换时动画如何实现 1、需要给各个页面定义层级,切换路由时判断进入哪个层级...

  • react-router-dom

    简介 使用React构建的单页面应用,使用路由实现页面跳转。在React中,常用的有两个包可以实现这个需求,那就是...

  • React Native 从入门到深入 -- Navigator

    前言 在前端的开发中,我们需要实现多个页面的切换跳转,iOS中使用Navigation实现页面的跳转,react ...

  • 路由

    一 、路由 一 路由是什么?对于单页面应用程序来说,主要通过URL中的 hash(#号) 来实现不同页面之间的切换...

  • 在React中使用react-router-dom路由

    在React中使用react-router-dom路由 使用React构建的单页面应用,要想实现页面间的跳转,首先...

  • 2018-08-16使用router-view同页面加载多路由

    描述:用路由方式实现单页面加载多页面,并且切换页面后状态还是保存的,类似于单页面实现标签页,切换标签页实现内容显示...

  • React 路由 (react-router-dom)

    React路由是react实现单页面应用的一种方式 介绍 react 路由的一些常用插件 1.BrowserRou...

  • vue router 多路由及路由嵌套

    在 vue 中使用 router 进行前端路由,可实现不跳转切换页面或局部切换页面,而且往往需要进行局部切换页面的...

网友评论

      本文标题:react中实现路由切换时离开页面确认弹窗提示

      本文链接:https://www.haomeiwen.com/subject/hcfqnhtx.html