我正在构建一个简单的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 {
......
为什么这不只是给我期望的输出(只是简单的输出,其中包含视图和文本中的数据?谢谢。
答案 0 :(得分:1)
AsyncStorage返回一个承诺。准备好后,您需要调用.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);
});
};
答案 1 :(得分:0)
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的内容,请检查一次。