javascript - 在主函数中使用 React Native Await/Async
问题描述
所以我正在使用异步函数并等待从异步存储缓存中检索数据,并且取决于它是否在缓存中,我想根据它是否在缓存中来更改屏幕上的文本。然而,我遇到的问题是 ReactNative 不允许我声明我的主函数使用异步,这导致我过早地从 checkCache() 获取数据。缓存已经为键“test_code”存储了来自不同屏幕的数据。
如何使 CodeTest() 成为异步函数,以便在 checkCache() 前面使用 await 方法,以便显示正确的文本?
import React, { Component } from "react";
import {
StyleSheet,
Text,
View,
Image,
SafeAreaView,
TouchableOpacity,
} from "react-native";
import AsyncStorage from "@react-native-async-storage/async-storage";
async function checkCache() {
var isCodeCached = false;
try {
result = await AsyncStorage.getItem('test_code');
if (result != null) {
console.log("result is valid");
console.log(result);
isCodeCached = true;
} else {
console.log("result is not valid");
}
} catch (e) {
console.log("Retrieval failed!");
}
return isCodeCached;
}
function CodeTest() {
const displayImage = () => {
var x = 1;
var isCodeCached = checkCache();
if (isCodeCached === true) {
return (
<SafeAreaView>
<Text style={styles.text}> Hello world</Text>
</SafeAreaView>
);
} else {
return (
<SafeAreaView>
<Text style={styles.text}> Hello universe</Text>
</SafeAreaView>
);
}
};
return CodeTest();
}
export default CodeTest;
解决方案
推荐阅读
- leaflet - 如何在 GridLayer Tile 中将纬度/经度转换为正确的像素位置
- android - Android:使用 MVVM 模式架构的异常观察
- java - Android项目和Android APP上的Jar Lib
- php - 从数组中删除重复的 yyyy/mm
- python - Python:如何计算文件中数字的总和?
- angular - 登录后获取更新的 XSRF 令牌和 Cookie:Angular 4
- html - AngularJS ng-if 三元条件属性使用
- regex - Django、url 和表单:在 url 中发送参数有什么意义?
- javascript - Ajax 调用后重定向到另一个页面?
- excel - Excel CustomUI 按钮链接