我正在构建一个简单的 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/