如何使用 universal-cookie 持久化 cookie
How to presist a cookie with universal-cookie
我使用 在我的 React 应用程序中设置了一个 cookie。不过它会随着会话过期。我如何存储此 cookie,以便它在会话之后持续存在,以便在浏览器关闭并重新打开时它仍然存在?
export default function App() {
const [classnameTr,setClassname] = useState<string>("checkbox-row1");
const [classnameLabel, setClassnameLabel] = useState<string>("my-label-black");
const cookies = new Cookies();
function setCookie() {
cookies.set('certDiscCookie', 'certDiscCookieSet', { path: '/' });
console.log("Cookies: " + cookies.get('certDiscCookie'));
}
function getCookie() {
if (cookies.get('certDiscCookie') === "certDiscCookieSet") {
setColor();
}
}
return (
<div className="App">
<header className="App-header">
<div className="checkbox-div">
<table className="checkbox-table">
<tbody>
<td className="tr2-td2"><button className="certDiscButtonSet" onClick={() => setCookie()}>Set Cookie</button></td>
<td className="tr3-td3"><button className="certDiscButtonGet" onClick={() => getCookie()}>Get Cookie</button></td>
</tr>
</tbody>
</table>
</div>
</header>
</div>
);
}
如果您不设置 expires
选项,它将以类似于 original cookies.set()
选项的方式工作 - 它成为会话 cookie。您必须设置一段时间后它会过期。如果这样做,它将在您重新启动浏览器后保留。没有办法让它长生不老。您可以将日期设置到很远的将来。
我使用
export default function App() {
const [classnameTr,setClassname] = useState<string>("checkbox-row1");
const [classnameLabel, setClassnameLabel] = useState<string>("my-label-black");
const cookies = new Cookies();
function setCookie() {
cookies.set('certDiscCookie', 'certDiscCookieSet', { path: '/' });
console.log("Cookies: " + cookies.get('certDiscCookie'));
}
function getCookie() {
if (cookies.get('certDiscCookie') === "certDiscCookieSet") {
setColor();
}
}
return (
<div className="App">
<header className="App-header">
<div className="checkbox-div">
<table className="checkbox-table">
<tbody>
<td className="tr2-td2"><button className="certDiscButtonSet" onClick={() => setCookie()}>Set Cookie</button></td>
<td className="tr3-td3"><button className="certDiscButtonGet" onClick={() => getCookie()}>Get Cookie</button></td>
</tr>
</tbody>
</table>
</div>
</header>
</div>
);
}
如果您不设置 expires
选项,它将以类似于 original cookies.set()
选项的方式工作 - 它成为会话 cookie。您必须设置一段时间后它会过期。如果这样做,它将在您重新启动浏览器后保留。没有办法让它长生不老。您可以将日期设置到很远的将来。