当浏览器应用程序关闭并重新打开时,Android(移动)上会出现奇怪的反应行为。(异步axios调用有时不运行?)

当浏览器应用程序关闭并重新打开时,Android(移动)上会出现奇怪的反应行为。(异步axios调用有时不运行?),android,reactjs,express,cookies,redux,Android,Reactjs,Express,Cookies,Redux,因此,我正在构建一个完整的堆栈(Express和React)应用程序,它使用后端cookies进行身份验证。我遇到的问题是,在安卓系统上,我的行为越来越怪异;可能在任何移动设备上。下面是一个代码示例: // React App.js const App = () => { const [user, setUser] = useState(""); const [auth, setAuth] = useState(false); const checkIfLogged = a

因此,我正在构建一个完整的堆栈(Express和React)应用程序,它使用后端cookies进行身份验证。我遇到的问题是,在安卓系统上,我的行为越来越怪异;可能在任何移动设备上。下面是一个代码示例:

// React App.js

const App = () => {
  const [user, setUser] = useState("");
  const [auth, setAuth] = useState(false);

  const checkIfLogged = async () => {
     console.log('[CHECKIFLOGGED]')
     try {
        const user = await axios.get('/user/route/', {withCredentials: true})
        setAuth(true)
        setUser(user.data)
     } catch (error) {
        console.log(error)
     }
  };

  useLayoutEffect(() => {
     checkIfLogged();
  })

  return(
   <>
     {components example, not real code}
   </>
  )
}

//React App.js
常量应用=()=>{
const[user,setUser]=useState(“”);
const[auth,setAuth]=useState(false);
const checkIfLogged=async()=>{
console.log(“[CheckiLogged]”)
试一试{
const user=wait axios.get('/user/route/',{withCredentials:true})
setAuth(真)
setUser(user.data)
}捕获(错误){
console.log(错误)
}
};
useLayoutEffect(()=>{
checkiLogged();
})
返回(
{组件示例,非真实代码}
)
}
因此,在本例中,一旦安装了应用程序,useEffect()将调用CheckiLogged(),这将向后端发出axios请求,如果存在正确的cookie,则返回用户并将其设置为状态。并且“auth”状态也设置为true。例如,状态变量可以控制条件组件

这就是问题所在。在桌面浏览器中,这运行得很好!没问题!状态设置正确;每次页面加载或刷新时,checkiLogged()都会运行。在Android手机浏览器上,这种状态有点不可预测。如果我在我的Android浏览器上打开网站,然后从我的Androids最近关闭浏览器(因此完全滑动关闭),然后重新打开我的浏览器;该站点以一种奇怪的缓存快速加载方式加载。当这种情况发生时,wait axios.get()有时运行,有时不运行。但是,即使axios.get()没有“运行”setAuth(true)setUser(user.data),它仍然会像通过axios调用一样执行。。。即使它从未被发送。我在后台使用morgan监视所有http请求,而axios.get无法通过。太烦人了。。。我正在建立的这个网站主要是为了让我自己在安卓系统上浏览。。。但我似乎找不到解决方案,而且网上也没有相关信息


任何帮助都将不胜感激

我真的认为我解决了这个问题;我将UseLayeEffect更改为useEffect;不管怎么说,那实际上是个打字错误。然后在我的index.js中,我将服务工作者设置为“未注册”。我认为serviceworker正在缓存HTTP请求以供脱机使用;这是我不想要的