繁体   English   中英

与array.map奇怪的输出

[英]Strange output with array.map

我正在构建一个简单的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",
          },
       ]

但是在控制台中输出的地图功能之后是这个

所有数据

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

为什么这不只是给我期望的输出(只是一个简单的输出,其中包含视图和文本中的数据?)。

AsyncStorage返回一个承诺。 准备好后.then()您需要调用.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);
    });
};
const items = [
       {
       name:'aaaa',
       email:'aaaa@gmail.com'
        },
       {
       name:<View>aksjdha</View>,
       email:'bbbb@gmail.com'
        },
       <View>qwds</View>
     ]


    let classData = items.map((y, i) => (
    <View key={i}>
     <Text>{y.email}, {y.name}</Text>
      </View>
    ));

您的数组对象中有类似jsx的内容,请检查一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM