这是注销逻辑,这里的键logoutoverlay设置在本地存储中。
<div className="logout">
<NavLink href={propsData.userDataTopNavLinkList.logout} onClick={() => {
localStorage.removeItem("manage");
localStorage.removeItem("token");
localStorage.removeItem("auth");
localStorage.removeItem("AccountInfo");
localStorage.removeItem("successfullySet");
localStorage.removeItem("userImpression");
localStorage.removeItem("cartCnt");
localStorage.removeItem("callDuration");
localStorage.removeItem("customGeoIPInfo");
localStorage.removeItem("geoipInfo");
localStorage.setItem("logoutoverlay","form overlay")
}}> {dictionary.t("Logout", "LOGOUT")}</NavLink>
</div>
在 Main.js 中,localStorage
检查本地的键logoutoverlay
if(localStorage.getItem("logoutoverlay"))
{
logoutDataLayer(localStorage.getItem("logoutoverlay"));
localStorage.removeItem("logoutoverlay");
}
在 dataLayerAnalytics.js 中,项目被推送到数据层
export const logoutDataLayer = (logoutplace) => {
let logoutDatalayer = {
"event": "loyaltyLogout",
"logoutContext": logoutplace
}
window.dataLayer.push(logoutDatalayer);
}
所有这些在我的本地机器上运行良好。但是在我将它部署到生产环境之后localStorage.removeItem("logoutPlace")
,Main.js 内部没有被执行,代码也无法到达localStorage.removeItem("logoutPlace")
。这就是为什么“logoutoverlay”项不会从本地存储中删除的原因。
而且由于我无法在本地系统上复制此问题,因此我什至无法调试代码。