javascript - array.map 的奇怪输出

标签 javascript react-native

我正在构建一个简单的 react native 移动应用程序并从 AsyncStorage 获取数据。这是一个在组件挂载时获取数据的函数

  getClassData = async id => {
    const allRegs = (await AsyncStorage.getItem("regs")) || "[]";
    const items = JSON.parse(allRegs);
    console.log("All REGS", items);
    const classData = items.map((y, i) => (
    <View key={i}>
     <Text>{y.email}, {y.name}</Text>
      </View>
    ));
    console.log('ALL DATA',str)
  };

第一个输出是正常的,如下所示。

All REGS
   Array [
     Object {
       "classID": 1,
        "email": "Mp@fgh.com",
        "name": "Allen",
          },
       ]

但是在控制台中输出的 map 功能是这样的

所有数据

  Array [
   Object {
   "$$typeof": Symbol(react.element),
   "_owner": null,
   "key": "0",
   "props": Object {
     "children": Object {
    "$$typeof": Symbol(react.element),
    "_owner": null,
    "key": null,
    "props": Object {
    ......

为什么这不能简单地给我预期的输出(只是一个简单的输出,其中包含 View 和文本中的数据?谢谢。

最佳答案

AsyncStorage 返回一个 promise 。准备好后,您需要调用 .then() 来获取值。

getClassData = async id => {
    await AsyncStorage.getItem("regs").then((allRegs) => {
        const items = JSON.parse(allRegs);
        console.log("All REGS", items);
        const classData = items.map((y, i) => {
            return(
                <View key={i}>
                    <Text>{y.email}{y.name}</Text>
                </View>
            );
        });
        console.log('ALL DATA', str);
    });
};

关于javascript - array.map 的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56917622/

相关文章:

react-native - 设置本地项目时使用特定的程序包名称

react-native - Expo.FileSystem.downloadAsync不显示下载通知

javascript - Firebase 监听器或下拉刷新

javascript - 在 DOM 元素/样式发生变化时激活 Angular 动画

javascript - 使用 Node.JS 作为 REST 服务器和 Web 服务器

javascript - 我们可以将 Controller 中的 JSON 数据(MM/DD/YYYY 格式)与自定义过滤器中的今天日期进行比较,并在数组中显示过滤列表

react-native - 没有为关键窗口设置尺寸

JavaScript - 未捕获的语法错误 : Unexpected token <?

java - 如何使用 c :out 不转义 JSTL 中的字符

react-native - 平移和缩放 SVG 图像,但放大图像时不清晰