javascript - 检查 cookie 并将结果记录到 React
问题描述
我想检查一个 cookie 是否存在,如果不存在,我想给 cookieauth
一个false
值。如果 cookie 是false
我想重定向到/
,如果 cookie 是true
它应该重定向到/home
. 因为我似乎无法让它工作,所以我删除了重定向并将其更改为,console.log("value");
以便我可以查看它是否正常工作。
checkLogin() {
var AuthCookie = localStorage.getItem("auth");
if (AuthCookie === null) {
console.log("null");
localStorage.setItem("auth", false);
}
if (AuthCookie === false) {
console.log("false");
}
else if (AuthCookie === true) {
console.log("true");
}
else {
console.log("AuthCookie is neither false or true");
}
}
此代码在控制台中没有输出,我不知道为什么。
我想在本地存储数据,在这种情况下它是一个登录页面,但这只是为了测试数据的存储。
import React, {Component} from 'react';
import ReactDOM from 'react-dom';
import { Redirect, Router } from 'react-router-dom';
import * as serviceWorker from './serviceWorker';
import Routes from './inc/routes';
import Navbar from './components/parts/navbar';
class Loader extends Component {
checkLogin() {
var AuthCookie = localStorage.getItem("auth");
if (AuthCookie === null) {
console.log("null");
localStorage.setItem("auth", false);
}
if (AuthCookie === false) {
console.log("false");
}
else if (AuthCookie === true) {
console.log("true");
}
else {
console.log("AuthCookie is neither false or true");
}
}
render() {
this.checkLogin();
return (
<div>
<Navbar />
<Routes />
</div>
);
}
}
ReactDOM.render(<Loader />, document.getElementById('root'));
控制台现在给了我AuthCookie is neither false or true
,但是当我查看应用程序和本地存储时,它说auth
是false
。控制台没有显示其他错误或警告。
解决方案
你确定 AuthCookie 是空的吗,也许它是未定义的,尽管如果不显示它最初分配给 localStorage 的位置,我们就无法知道。
在调试时尝试向后工作,因此在调用函数时从控制台记录 AuthCookie 开始,这样您就可以确保它被分配了您期望的值。否则,再回到分配给 localStorage 的位置并检查那里的值。我们无法确定提供的代码,但 id 说该值不是您认为的值。
推荐阅读
- revit-api - pyRevit WPF 非模态问题
- azureservicebus - Azure 服务总线异常 - MessageLockLostException:提供的锁无效。锁已过期,或消息已被删除
- angular - Angular 9 使用提供者扩展 ServiceProviderComponent
- go - 无论如何在ansi控制台上打印斜体字体?
- powershell - PowerShell 脚本 - 复制广告成员 o
- android - Firebase实时数据库android客户端在一小时后检测用户注销
- python - 使用类 python 组织类似的方法
- c# - 如何创建支持算术运算的自定义数据类型,就像任何其他通用数据类型一样
- java - 我们如何获得父包注释?有人提供示例吗?
- security - Google 如何识别设备?