[英]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.