如何访问 props 返回的数据
2018-08-31
38
我是 nextjs 和 react 的新手。我正在使用 nextjs 从 api 获取数据并将其显示在视图中。这是我的代码。
const Index = props => (
<Layout>
<h1>Events</h1>
<ul>
{props.eventList.map(({ venue }) => (
<li key={venue.name}>
<a>{venue.name}</a>
</li>
))}
</ul>
</Layout>
);
Index.getInitialProps = async function() {
const res = await fetch("api link here");
let data = await res.json();
console.log(`Show data fetched. Count: ${data.events.length}`);
return {
eventList: data.events
};
};
现在我的 api 返回的数据如下
[
{
"id": 4303920,
"name": "Test Event",
"venue": {
"id": 1610,
"name": "Eiffel Tower Viewing Deck at Paris Las Vegas",
}
},
{
"id": 4323,
"name": "Test Event 2",
"venue": {
"id": 1610,
"name": "Eiffel Tower Viewing Deck at Paris Las Vegas",
}
}
]
我可以通过 props.eventList.map 函数访问场地详细信息,但无法访问 id 和名称。
2个回答
在您的地图中,不要使用 ({venue}) => 而要使用 (item) => 您的问题是您获取每个元素,但只从中提取场地,而不是提取整个元素。一旦您有了项目,您就可以说 item.id、item.venue 等。
Chris Cousins
2018-08-31
您不应该将 {venue} 放在您的 map 函数中,而是像这样传递事件 (event),那么您将获得 even.name 和 event.is,并且您将获得 event.venue.id 和 event.venue.name
Lazar Nikolic
2018-08-31