reactjs - 反应本机异步存储无法正常工作
问题描述
我的 react native app 中有 2 个导航器。
我正在尝试有条件地在 App.js 中使用它们
我在我的一个屏幕中设置了项目,然后我正在尝试这样做
export default function App() {
const logedStatus = AsyncStorage.getItem('logedIn').then(logedIn => logedIn)
return (
<Provider store={store}>
{logedStatus.length === 0 ? <Navigator /> : <LogedInNav/>}
<Snackbar />
</Provider>
);
}
无论我尝试启动应用程序多少次,它总是呈现logedInNav导航,我很困惑,如果你不自己清除它,商店永远不会空吗?还是我做错了什么?
解决方案
你需要使用 state 和 useEffect
import {useState,useEffect} from 'react'
export default function App() {
const[logedStatus,setlogedStatus])useState(false)
useEffect(()=>{
let mounted=true;
AsyncStorage.getItem('logedIn').then(logedIn =>{
if(mounted) setlogedStatus(logedIn)
})
return()=>{mounted=false;}
},[])
return (
<Provider store={store}>
{logedStatus.length === 0 ? <Navigator /> : <LogedInNav/>}
<Snackbar />
</Provider>
);
}
推荐阅读
- angular - Angular 库 - 使用 APP_INITIALIZER 将参数传递给服务
- spring-boot - 在 spring colud 合同中定义请求主体
- google-cloud-platform - GCloud AI Notebook Efficient 实例虚拟机无通知重启
- python - Python Selenium bot 查看 Instagram 故事 | 如何单击具有活跃故事的人的个人资料?
- html - 2之间的白色间隙元素和原因
元素的边距有一个默认值
我正在尝试通过在线课程创建“我的网站”页面。我是一个超级初学者,任何用最简单的词语和术语进行的解释都将不胜感激,这样我就可以理解而不会太技术化。我再次尝试在此处尽我最大的能力解释这个问题,而不是过于技术化。
在这里,我遇到了一个问题,我可以看到两个称为“顶部容器”和“中间容器”的元素之间存在白色间隙。见图1。
lwc - 使用 Lightning Web 组件时看不到代理对象
- python - python - 如何根据另一列在python中有重复项给出序列号?
- javascript - 以 JSX 形式返回动态字符串,呈现为导入的组件
- date - 查找 2 个日期与营业时间 + 节假日之间的日期
- c++ - 如何制作包含所有依赖项的共享库?