在React Native中,如何使用保存在具有AsyncStorage的本地存储中的值进行呈现?

pw9qyyiw  于 2023-03-09  发布在  React
关注(0)|答案(1)|浏览(145)

我只想在JSX中或全局使用演示对象“person”,它是通过AsyncStorage保存在本地存储中的。
以下是我目前为止尝试过的代码。它只是抛出一个错误,说找不到有价值的“”人“”

import React from "react";
import { View, Text, StyleSheet } from "react-native";

import AsyncStorage from "@react-native-async-storage/async-storage";


const Home = () => {
  const Jhon = { id: 1, age: 30 };
  const demo = async () => {
    try {
      await AsyncStorage.setItem("person", JSON.stringify(Jhon));
      const value = await AsyncStorage.getItem("person");
      const person = JSON.parse(value);
      console.log(person);
    } catch (error) {
      console.log(error);
    }
  };

  demo();

  return (
    <View style={styles.container}>
      //Here, I want to use this object person to show it.
      <Text style={styles.text}>{person}</Text>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    justifyContent: "center",
    alignItems: "center",
    flex: 1,
  },
  text: {
    fontSize: 50,
  },
});

export default Home;

我想我知道为了使用该函数之外的对象,我需要使用return的值,并将其存储到一个有价值的,如const X,然后消费它,但在尝试玩它之后,我只是搞砸了,现在完全卡住了。
你会怎么做?如果你能修复我的代码使它工作就太好了。提前感谢你。
我的真实的目标是能够保存和使用状态值,这样即使用户关闭了我的应用程序,他们也可以从停止的地方开始/contenu

djmepvbi

djmepvbi1#

您应该在useEffect中调用这个demo函数,这意味着您应该在生命周期中调用这些异步的东西。
下面是一个例子:

useEffect(() => {
  (async () => {
    await demo();
  })();
}, []);

相关问题