iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >react如何实现路由跳转前确认
  • 331
分享到

react如何实现路由跳转前确认

2023-07-05 01:07:53 331人浏览 八月长安
摘要

这篇文章主要介绍“React如何实现路由跳转前确认”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react如何实现路由跳转前确认”文章能帮助大家解决问题。react实现路由跳转前确认功能的方法:1、

这篇文章主要介绍“React如何实现路由跳转前确认”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react如何实现路由跳转前确认”文章能帮助大家解决问题。

react实现路由跳转前确认功能的方法:1、通过“import { Modal } from 'antd';”方法引入“antd”;2、使用Antd的“Modal.confirm”实现弹框;3、设置FORM表单内容即可。

react-router 跳转前确认Prompt使用

需求

页面切换的时候,会遇到这样的需求:切换时需要判断内容区域编辑后是否保存了, 若没保存,则弹出提示框,提示保存。

react如何实现路由跳转前确认

官网示例

react router中的Prompt可以实现这样的功能。

// 示例1<Prompt  when={formIsHalfFilledOut}  message="Are you sure you want to leave?"/>// 示例2<Prompt  message={(location, action) => {    if (action === 'POP') {      console.log("Backing up...")    }    return location.pathname.startsWith("/app")      ? true      : `Are you sure you want to Go to ${location.pathname}?`  }}/>

实现

我们项目的技术栈umi+antd+react

弹框用的Antd的 Modal.confirm

import React, { useEffect, useState } from 'react';import { Modal } from 'antd';import { useBoolean } from '@umijs/hooks';// umi里封装了该组件// 或者 import { Prompt } from "react-router-dom";import { useParams, history, Prompt } from 'umi';import {  ExclamationCircleOutlined} from '@ant-design/icons';import {  isEqual } from '@/utils/utils';import { FormInstance } from 'antd/lib/form';export default function BaseInfo() {  const { id } = useParams<{ id: string }>();   // 保留原始数据  const [orginData, setOrigin] = useState({});  // 修改后的数据  const [modifyData, setModify] = useState({});  // 是否启用Prompt  const { state, setTrue, setFalse } = useBoolean(false);  // 还原信息 useLoading是自己封装的hooks  const [isFetching, fetchInfo] = useLoading(getServiceGroupDetail);  useEffect(() => {    (async () => {      try {        if (id !== '0') {          const info = await fetchInfo(id);          setOrigin({            ...info           });          setModify({            ...info           });                  }      } catch (e) {        console.error(e);      }    })();  }, [id]);  useEffect(() => {    if (isEqual(orginData, modifyData)) {      setFalse();    } else {      setTrue();    }  }, [orginData, modifyData]);  const nextStep = (pathname?: string) => {    setFalse();    pathname &&      setTimeout(() => {        history.push(pathname);      });  };  return (      {}      {routerWillLeave(state, form, nextStep)}  );}function routerWillLeave(  isPrompt: boolean | undefined,  formInstance: FormInstance, // 保存,我这个页面是Form表单  nextStep: (pathname?: string) => void) {  return (    <div>      <Prompt        when={isPrompt}        message={(location) => {          if (!isPrompt) {            return true;          }          Modal.confirm({            icon: <ExclamationCircleOutlined />,            content: '暂未保存您所做的更改,是否保存?',            okText: '保存',            cancelText: '不保存',            onOk() {              formInstance?.submit();              nextStep(location.pathname);            },            onCancel() {              nextStep(location.pathname);            }          });          return false;        }}      />    </div>  );}

关于“react如何实现路由跳转前确认”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: react如何实现路由跳转前确认

本文链接: https://www.lsjlt.com/news/348712.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • react如何实现路由跳转前确认
    这篇文章主要介绍“react如何实现路由跳转前确认”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react如何实现路由跳转前确认”文章能帮助大家解决问题。react实现路由跳转前确认功能的方法:1、...
    99+
    2023-07-05
  • react native路由跳转如何实现
    这篇文章主要讲解了“react native路由跳转如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react native路由跳转如何实现”吧!react native路由跳转的实现...
    99+
    2023-07-04
  • react-router-dom路由跳转如何实现
    这篇“react-router-dom路由跳转如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react-router...
    99+
    2023-07-04
  • react native路由跳转怎么实现
    本教程操作环境:Windows10系统、React Native0.67版、Dell G3电脑。react native路由跳转怎么实现?React Native-路由跳转搭建完RN开发环境后,要实现多个页面之间的跳转。 1.这时需要安装r...
    99+
    2023-05-14
    react-native
  • react-router-dom路由跳转怎么实现
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react-router-dom路由跳转怎么实现?React-Router-dom路由跳转useNavigateuseNavigate方法可以手动操作进行...
    99+
    2023-05-14
    React
  • Vue如何实现路由跳转
    这篇文章将为大家详细讲解有关Vue如何实现路由跳转,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。单页一应用的路由模式有再种1、哈希模式(利用hashchange事件监听u...
    99+
    2024-04-02
  • react中路由跳转及传参的实现
    目录1.useNavigate2.useLocation3.示例1.useNavigate useNavigate 是 React Router v6 中新增的一个 hoo...
    99+
    2023-05-19
    react 路由跳转 react 路由传参
  • vue如何实现父级路由跳转子路由
    今天小编给大家分享一下vue如何实现父级路由跳转子路由的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。子路由配置首先,我们需要...
    99+
    2023-07-05
  • vue中如何实现路由跳转
    这篇文章主要介绍vue中如何实现路由跳转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!跳转方式:1、用“<router-link :to="{..}">”语句;2、用“this.$ro...
    99+
    2023-06-25
  • react路由跳转不刷新如何解决
    这篇文章主要介绍了react路由跳转不刷新如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react路由跳转不刷新如何解决文章都会有所收获,下面我们一起来看看吧。react路由跳转不刷新的解决办法:1、在...
    99+
    2023-07-05
  • vuejs如何实现路由跳转传值
    这篇文章主要为大家展示了“vuejs如何实现路由跳转传值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vuejs如何实现路由跳转传值”这篇文章吧。 ...
    99+
    2024-04-02
  • React利用路由实现登录界面的跳转
    上一篇在配置好了webpack和react的环境后,接下来开始写登录界面,以及接下来的跳转到主页的功能。 1、首先看一下总体的目录结构。 因为很多时候在看别人写的例子的时候因为目录...
    99+
    2024-04-02
  • react跳转路由页面空白如何解决
    这篇文章主要讲解了“react跳转路由页面空白如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react跳转路由页面空白如何解决”吧!react跳转路由页面空白是因为写法错误,其解决办...
    99+
    2023-07-05
  • vue如何路由跳转
    在vue中实现路由跳转的方法有:1.使用this.$router.push()跳转;2.使用router-link跳转;在vue中实现路由跳转的方法有以下几种使用this.$router.push()跳转1)不带参跳转this.$route...
    99+
    2024-04-02
  • react4.0路由如何跳转
    这篇文章主要介绍“react4.0路由如何跳转”,在日常操作中,相信很多人在react4.0路由如何跳转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”react4.0路由如何跳转”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-04
  • springMVC路由跳转怎么实现
    本篇内容介绍了“springMVC路由跳转怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现目标:使用springMVC前端控制器,...
    99+
    2023-06-30
  • vue如何使用router-link实现路由跳转
    这篇文章主要介绍vue如何使用router-link实现路由跳转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!router-link 【实现跳转最简单的方法】<router-link to='...
    99+
    2023-06-18
  • React中的路由嵌套和手动实现路由跳转的方式详解
    目录React的路由嵌套手动路由的跳转React的路由嵌套 接上一篇文章, 在上一篇文章中讲解了路由的基本介绍, 我再来介绍一下路由的其他用法 在开发中,路由之间是存在嵌套关系的。 ...
    99+
    2022-11-13
    react路由嵌套 react路由跳转 react手动路由跳转
  • react如何实现跳转前记住页面状态
    这篇文章主要介绍了react如何实现跳转前记住页面状态的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react如何实现跳转前记住页面状态文章都会有所收获,下面我们一起来看看吧。react实现跳转前记住页面状态的...
    99+
    2023-07-04
  • vue如何进行路由跳转
    这篇文章主要介绍“vue如何进行路由跳转”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue如何进行路由跳转”文章能帮助大家解决问题。一、使用vue-routervue-router 本质是一个第三...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作