react hooks 中监听当前页面的路由变化
传统的都会去采用react-router-dom入手,不能去监听useLocation,容易造成程序紊乱,一直在调用,当中有一个Prompt,
Prompt 高版本,太低的就用class的生命周期去监听router
需要在哪里就放置哪里,也可作为全局使用
import { useHistory, useLocation, Prompt } from 'react-router-dom';
const handelLeave = (e) => {
//路由参数e ,中的pathname可以供你使用
if (!(e.pathname === '/infra/module/form/management/add' || e.pathname === '/infra/module/form/management/edit')) {
session.remove('formCode');
session.remove('formCode');
session.remove('formType');
session.remove('categoryCode');
session.remove('hasWorkflow');
session.remove('businessDefinitionId');
}
};
//控制开关,false的话不监听 //方法可以抒写逻辑
<Prompt when={true} message={handelLeave} />