window.dataLayer.push 在本地机器上工作,但不在生产环境中

问题描述

这是注销逻辑,这里的关键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);
}

所有这些在我的本地机器上运行良好。但是在我将它部署到生产环境之后,Main.js 中的 localStorage.removeItem("logoutPlace") 没有被执行,代码也无法到达 localStorage.removeItem("logoutPlace")。这就是“logoutoverlay”项不会从本地存储中删除的原因。

而且由于我无法在本地系统上复制此问题,因此我什至无法调试代码。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)