這是實現提示的效果哦~
首先須要依賴這個這個插件 react-router-navigation-prompt
下面是具體的代碼react
import React from 'react'; import { Modal, } from 'antd'; import NavigationPrompt from 'react-router-navigation-prompt'; const confirm = Modal.confirm; class RouterAlert extends React.Component { // 設置當前路由切換時是否切換 可根據具體業務操做 state = { isWhen: false, }; render() { const { isWhen } = this.state; return ( <div> /** * @param crntLocation 當前路由路徑數據 * @param nextLocation 要切換的路由路徑數據 * pathname 表明路徑的值 * * */ <NavigationPrompt when={(crntLocation, nextLocation) => { if (isWhen && crntLocation.pathname !== nextLocation.pathname) { return true; } return false; } } > /** * @param onConfirm 肯定離開調用當前函數 * @param onCancel 不離開時調用當前函數 * * */ {({ onConfirm, onCancel }) => { confirm({ title: '檢測到您還有數據未保存,肯定離開嗎?', onOk() { onConfirm(); }, onCancel() { onCancel(); }, }); }} </NavigationPrompt> </div> ); } }
好了~ 這個效果就實現了。npm