首页 > 解决方案 > 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 删除它?以及如何删除它们?

标签: javascriptreactjscookiesreact-cookie

解决方案


当您创建 cookie 时。请将 expires 设置为 0。例如

cookies.set('userInfo', name, { expires: 0 });

那么这个cookie会在浏览器关闭时过期。


推荐阅读