React原生异步存储令牌在返回屏幕并返回验证失败后丢失



我是新手,反应原生,敬请谅解。当我点击类别(A)我导航到包含不同的子类别(B)的新屏幕我在这个页面上使用get令牌(B)和发送请求来获取我可以成功获取显示子类别。当我从那里回到屏幕A并再次点击类别时,这是一个错误验证在api调用中失败,令牌丢失,如果我在几分钟内这样做,它工作得很好,就在我立即做令牌丢失时

useEffect(()=>{
(async()=>{
const token=await getToken() 
setUserLToken(token) 
})()
}
)

您可以将令牌保存在常量文件中,并且无论何时调用API都可以从该文件中获取令牌。所以它永远不会给你标记缺失文件错误。

Asyncstorage需要一些时间来获取值,这就是为什么你得到令牌丢失问题。

创建一个类似AppManager.js的文件,并在该文件中创建程序,如下所示:

export var ConstantId = 
{
accessToken: '',

};

现在,无论何时在Asyncstorage中设置令牌,也要将令牌保存在appmanager文件中,如下所示:

import {ConstantId} from './AppManager';
ConstantId.accessToken = token;

现在,每当需要令牌时,只需从appmanager文件中获取它,如下所示:

import {ConstantId} from './AppManager';
const token =  ConstantId.accessToken ;

还有一件事,每次启动应用程序时,只需检查令牌是否存储在Ascynstorage中,如果令牌存在,则仅从app .js文件中获取令牌并将其存储在AppManager.js文件中,如下面

useEffect(() => {
let token = await AsyncStorage.getItem('token');
if (token != null) {
ConstantId.token = token;
}
})

相关内容

  • 没有找到相关文章

最新更新