【发布时间】:2020-09-18 09:55:34
【问题描述】:
我试图在一个对象中映射一组对象,但我似乎无法让它工作。我的代码的目标是映射并显示“菜单”数组中的内容。
这是对象的结构(从状态登录到控制台)。
Object {
"id": 1,
"img": "https://cuisinederue.org/wp-content/uploads/2019/08/Greg2.png",
"menu": Array [
Object {
"description": "Les prix sont défini à la tête du client",
"name": "Greg's Burger",
"price": 1,
},
Object {
"description": "Les prix sont défini à la tête du client",
"name": "Poutine double cheese bacon",
"price": 1,
},
Object {
"description": "Les prix sont défini à la tête du client",
"name": "Cône de poulet pop corn et frites maison",
"price": 1,
},
Object {
"description": "Les prix sont défini à la tête du client",
"name": "Grilled cheese Philly steak",
"price": 1,
},
Object {
"description": "Les prix sont défini à la tête du client",
"name": "Poutine Philly cheese steak",
"price": 1,
},
Object {
"description": "Les prix sont défini à la tête du client",
"name": "Boulette de mac'n'cheese",
"price": 1,
},
],
"name": "Greg's dinner",
"type": "SOUTHERN COMFORT",
}
这是我要开始工作的代码:(特别是details.menu.map 部分)
const Details = ({navigation, idTruck}) =>{
const [details, setDetails] = useState([]);
const [detailsDone, setDetailsDone] = useState(false);
const getDetails = () => {
fetch("https://foodtrack-420kbc-lg.herokuapp.com/trucks/1").then(res => res.json()).then(resp => setDetails(resp));
}
if(!detailsDone)
{
getDetails();
setDetailsDone(true);
}
console.log(details);
return (
<View style={styles.container}>
<Header title='Details'></Header>
<Image name="logo" style={styles.detailsImage} source={{uri: details.img}}></Image>
<Text name="nom">{details.name}</Text>
<Text name="style">{details.type}</Text>
{
details.menu.map(({description, name, price}) =>
<View style={styles.container}>
<Text name="nom">{name}</Text>
<Text name="prix">{price}</Text>
<Text name="desc">{description}</Text>
</View>
)
}
</View>
)
}
我得到的错误是: TypeError: undefined is not an object (evaluating 'details.menu.map'
非常感谢任何帮助!
【问题讨论】:
-
改成这样
details.menu.map((detail) =>和<Text name="nom">{detail.name}</Text> -
@sibabratswain 遗憾的是我仍然遇到同样的错误。不过感谢您的建议!
-
您是否更改了价格和描述之类的名称对吗?
-
@sibabratswain 是的,我仍然收到 TypeError: undefined is not an object (evalating 'details.menu.map'
标签: javascript arrays reactjs react-native