javascript - React:当用户关闭浏览器时删除 cookie
问题描述
我正在使用库 react-cookie ( https://www.npmjs.com/package/react-cookie ),我想在浏览器或选项卡关闭时删除用户 cookie。我在我的 Approuter 中使用了 ComponentWillUnmount,但是当浏览器关闭时它不起作用。任何人都知道如何实现这一目标?
import React from 'react';
import {Router, Route, Switch} from 'react-router-dom';
import history from '../data/history';
import { withCookies, Cookies } from 'react-cookie';
import { instanceOf } from 'prop-types';
class AppRouter extends React.Component{
static propTypes = {
cookies: instanceOf(Cookies).isRequired
};
constructor(props){
super(props)
}
componentWillMount(){
const {cookies} = this.props;
cookies.remove('userInfo');
}
render(){
return(
<Router history={history}>
<div>
<Header/>
<div className="main-container">
<Switch>
//routes
</Switch>
<Footer/>
</div>
</div>
</Router>
);
}
}
export default withCookies(AppRouter);
路由器确实收到了 cookie,为什么我不能用 componentWillUnmount 删除它?以及如何删除它们?
解决方案
当您创建 cookie 时。请将 expires 设置为 0。例如
cookies.set('userInfo', name, { expires: 0 });
那么这个cookie会在浏览器关闭时过期。
推荐阅读
- javascript - 根据数组值显示 UL 元素
- javascript - 我在使用 REACT 制作计算器时遇到问题
- javascript - 如何正确销毁cropper.js,以便下一次裁剪获得新图像?
- c++ - 相同的程序,用相同的标志编译,读入一个文本文件,在不同的系统上得到不同的结果
- audio - 解码二进制/十六进制 WAV 文件元数据的建议 - Pro Tools UMID 块
- flutter - Flutter Command 无法在 VS Code 中运行
- python - 对于 Hazelcast python 客户端,我如何在服务器端没有 retain_all() 的多个 Hazelcast 集实体之间设置 Hazelcast 集交集?
- javascript - 如何获得用户输入数组的总和?
- c - 如何正确打印 JPEG 文件的字节?- CS50 PSET3 恢复
- java - 重载方法时的Java方法继承问题