react-router 页面离开 提示数据变更

以前项目使用 react-router2.0, 业务层面页面离开的时候需要弹出自己的弹出框,根据用户的操作,进行是否可以离开

       试了几种方式都存在问题,实现的并不完美,没办法对用户点击浏览器后退支持的很好,除非是显示系统默认的confirm,同步处理

       1.setRouteLeaveHook

          

          setRouteLeaveHook没有callback机制,只能是修改了变化标志位,再push一遍,但是这个在实际情况也是有问题的,因为history就一直是push了,跟用户点后退不是一个交互了

          2.onChange处理, onChange可以在成功的时候,调用callback,但是用户点击浏览器后退的话,其实是没有回调触发的,不跳转的情况下,没办法恢复url

          

          其他情况下  页面url不变化,

                 a.可能是页面跳转,没有使用hashHistory进行操作,直接操作了原生的location.history对象

                 b.页面刷新了测试,hashHistory对象length = 1,没有地址可以回退

 

          网上还有自己创建history的方式,项目中没有尝试,项目升级到react-router4.0的时候解决了问题,解决方式其实上一篇中已经写明了。

          1.getUserConfirmation,在 自己创建history 或者定义 HashRouter 的时候,设置确认弹出框,通过callback异步处理

             

         2.页面离开通过,路由变化的时候的提示功能 Prompt 组件  https://reacttraining.com/react-router/core/api/Prompt 实现

           

           message也可以是方式,这个看实际项目需求

         3.操作history,需要使用路由的histroy对象,使用路由的组件和方法跳转,不要和原生的location.history串用

转载于:https://www.cnblogs.com/legu/p/7091443.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java interface和impl_为什么要使用Interface,而不是直接使用一个实体类来完成任务?Interface和Impl这种方式的好处是什么?...

大家好,我是IT修真院北京分院的学员刘佳义,一枚正直善良的JAVA程序员。今天给大家分享一下,修真院官网任务中可能会使用到的知识点:为什么要使用Interface?Interface和Impl有什么好处1.背景介绍:首先咱们来…

python批量访问网页保存结果_Python检测批量URL状态,并将返回正常的URL保存文件...

-- coding: UTF-8 -- #author huangyishan import os import sys import urllib2 urls sys.argv[1] #从程序外部调用参数,0即程序本身 result list() def check_url_status(): f open(urls,‘r‘) #以读方式打开文件 for line in f.readlines(): #依次读取每行 …

caffe使用ctrl-c不能保存模型

caffe使用Ctrl-c 不能保存模型&#xff1a; 是因为使用的是 tee输出日志   解决方法&#xff1a;kill -s SIGINT <proc_id>   或者使用   GLOG_log_dir/path/to/log/dir $CAFFE_ROOT/bin/caffee.bin train     —solver/path/to/solver.prototxt  来输出日志…

C语言系列文章之#和##

很久就知道了 # 和 ## &#xff0c;但是都没怎么使用&#xff0c;直到最近的项目涉及到需要编写大量相似的代码之后才决定尝试使用 ## 去简化代码的书写。比如说我的项目需要控制四个通道的电机&#xff0c;四个通道的逻辑控制代码都是类似的&#xff0c;只是对应的硬件和数据信…

java ioc和aop的含义_Spring核心IoC和AOP的理解

spring 框架的优点是一个轻量级笔记简单易学的框架&#xff0c;实际使用中的有点优点有哪些呢&#xff01;1.降低了组件之间的耦合性 &#xff0c;实现了软件各层之间的解耦2.可以使用容易提供的众多服务&#xff0c;如事务管理&#xff0c;消息服务等3.容器提供单例模式支持4.…

springboot 上传文件_基于SpringBoot的文件上传

在实际的企业开发中&#xff0c;文件上传是最常见的功能之一&#xff0c;SpringBoot集成了SpringMVC常用的功能&#xff0c;当然也包含了文件上传的功能&#xff0c;实现起来没有太多的区别。下面我们来讲解一下&#xff0c;使用SpringBoot如何实现多个文件上传操作。使用的环境…

看雪KSSD-windows驱动

KanXue Software Security Documentation ,简称KSSD ,是一个在线的文档浏览查阅系统 1. 书籍推荐 《windows 2000 内部揭密>>--------------------------------------这里面可以学到什么是IRP、内存管理、文件系统之类 《驱动模型设计>>-------------------------…

Linux的 i2c 驱动框架分析

1.基本概念总线设备驱动模型&#xff0c;是Linux 内核的一个基础&#xff0c;基本理论可以说按照大企业的分工原则&#xff0c;每个人只要负责自己的事情&#xff0c;向其他部门给出标准的接口调用&#xff0c;后勤部就负责后勤工作&#xff0c;厨房有可能跟后勤部产生工作上的…

java ee程序设计师_软件设计师:Java EE开发四大常用框架[1]

StrutsStruts是一个基于Sun Java EE平台的MVC框架&#xff0c;主要是采用Servlet和JSP技术来实现的。Struts框架可分为以下四个主要部分&#xff0c;其中三个就和MVC模式紧密相关&#xff1a;1、模型 (Model)&#xff0c;本质上来说在Struts中Model是一个Action类(这个会在后面…

26、字符串的操作

字符串的操作 一、字符串的反向输出&#xff08;逆置&#xff09; /*2017年3月17日13:18:39功能&#xff1a;将字符串反向输出 */ #include"stdio.h" int main () {char a[100];char b[100];printf("please input one array: ");gets(a);char *pa a;char …

matlab fftshift_数字信号处理没有Matlab?用Python一样很爽

通常&#xff0c;在数字信号处理时&#xff0c;我们避不开matlab这个工具&#xff0c;因其它的强大的功能受到广大工程师的好评&#xff0c;也一直都是业界的不二之选。但是&#xff0c;matlab毕竟是商业软件&#xff0c;公司里如果使用的话&#xff0c;就需要支付高昂的费用。…

栈,C语言实现

什么是数据结构&#xff1f;数据结构是什么&#xff1f;要了解数据结构&#xff0c;我们要先明白数据和结构&#xff0c;数据就是一些int char 这样的变量&#xff0c;这些就是数据&#xff0c;如果你是一个篮球爱好者&#xff0c;那么你的球鞋就是你的数据&#xff0c;结构就是…

Camera摄像头工作原理

回想这工作的这几年&#xff0c;尝尽社会的辛酸艰难&#xff0c;从一开始什么都没有到30万&#xff0c;从30万到200万&#xff0c;从200万到1300万&#xff0c;不是炫耀&#xff0c;我只是想通过我自己的经历告诉我的朋友们「手机像素越高&#xff0c;拍的照片越清晰」摄像头结…

es6一维数组转二维数组_技术图文:Numpy 一维数组 VS. Pandas Series

背景Numpy 提供的最重要的数据结构是 ndarray&#xff0c;它是 Python 中 list 的扩展。Pandas 提供了两种非常重要的数据结构 Series和DataFrame。Numpy 中的一维数组与 Series 相似&#xff0c;一维数组只是提供了从0开始与位置有关的索引&#xff0c;而Series除了位置索引之…

unity UI事件

由于工作需要到持续按键&#xff0c;所以了解了一下unity UI事件&#xff0c;本文主要转载于http://www.cnblogs.com/zou90512/p/3995932.html?utm_sourcetuicool&utm_mediumreferral&#xff0c;并对相关问题进行解释。 我们最常用到的就是unity的button组件&#xff0c;…

java sar包_linux下查看最占性能的JAVA进程

记录一下自己常用的linux系统命令&#xff0c;方便以后查阅&#xff0c;发觉记忆越来越不行了找到最耗CPU的线程ps命令命令&#xff1a;ps -mp pid -oTHREAD,tid,time或者ps -Lfp pid结果展示&#xff1a;这个命令的作用&#xff0c;主要是可以获取到对应一个进程下的线程的一些…

电子工程学院的师兄弟姐们们,老师叫你们回家

昨天写了很长的文章&#xff0c;接收到推送的同学们应该也会很开心&#xff0c;但是由于我的原因&#xff0c;需要把文章删除「你们能想到的原因肯定不是我删文的原因」&#xff0c;但是呢&#xff0c;也因为这样&#xff0c;又可以重写一篇&#xff0c;刚好可以多加点内容。后…

auto.js停止所有线程_Java多线程编程基础知识 概念介绍,以及线程状态

一、进程进程是操作系统结构的基础&#xff1b;是一次程序的执行&#xff1b;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中&#xff0c;几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行&#xff0c;即变成一个进程。进程是处于运行过程中…

android与js交互

首先引用一篇文章&#xff0c;看过这篇文章基本上就明白android大致与js是如何交互的了 Android与HTMLJS交互入门 ----------------------------分割线----------------------------------- 首先要知道js是啥&#xff0c;js就相当于在html内的函数方法&#xff0c;全称为javasc…

php调用md5.js,js中怎么使用md5加密

首先引入用法&#xff1a;hex_md5("123456");md5.js 文件下载&#xff1a;/** A JavaScript implementation of the RSA Data Security, Inc. MD5 Message* Digest Algorithm, as defined in RFC 1321.* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.* Othe…