React Native FlatList 不渲染项目
React Native FlatList not rendering items
<Query
query={FETCH_EVENTS}>
{
({data, error, loading }) => {
if (loading) return null;
if (error) {
console.error(error);
return <Text>An error occured</Text>;
}
if (!data.allEvents) return null;
return(
<FlatList
style={{flex: 1}}
data={data.allEvents}
renderItem={({ item }) => {
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>
}}
keyExtractor={item => item.id}
/>
)
}
}
</Query>
上面的代码无缘无故突然停止工作,我不明白为什么 FlatList 不再渲染项目。
当我直接用以下组件替换 FlatList 时,它可以工作并呈现,所以问题应该与组件无关,而是与 FlatList 有关。
return(
<EventCard
event={data.allEvents[0]}
key={data.allEvents[0].id}
latitude={latitude}
longitude={longitude}/>
)
您不会退回活动卡片
renderItem={({ item }) => (
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>
)}
而不是
renderItem={({ item }) => {
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>
}}
您忘记在 renderItem 中 return 声明
试试这个
<FlatList
style={{flex: 1}}
data={data.allEvents}
renderItem={({ item }) => {
return(
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>);
}}
keyExtractor={item => item.id}
/>
或
<FlatList
style={{flex: 1}}
data={data.allEvents}
renderItem={({ item }) =>
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>
}
keyExtractor={item => item.id}
/>
以上两种解决方案都应该有效
<Query
query={FETCH_EVENTS}>
{
({data, error, loading }) => {
if (loading) return null;
if (error) {
console.error(error);
return <Text>An error occured</Text>;
}
if (!data.allEvents) return null;
return(
<FlatList
style={{flex: 1}}
data={data.allEvents}
renderItem={({ item }) => {
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>
}}
keyExtractor={item => item.id}
/>
)
}
}
</Query>
上面的代码无缘无故突然停止工作,我不明白为什么 FlatList 不再渲染项目。
当我直接用以下组件替换 FlatList 时,它可以工作并呈现,所以问题应该与组件无关,而是与 FlatList 有关。
return(
<EventCard
event={data.allEvents[0]}
key={data.allEvents[0].id}
latitude={latitude}
longitude={longitude}/>
)
您不会退回活动卡片
renderItem={({ item }) => (
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>
)}
而不是
renderItem={({ item }) => {
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>
}}
您忘记在 renderItem 中 return 声明
试试这个
<FlatList
style={{flex: 1}}
data={data.allEvents}
renderItem={({ item }) => {
return(
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>);
}}
keyExtractor={item => item.id}
/>
或
<FlatList
style={{flex: 1}}
data={data.allEvents}
renderItem={({ item }) =>
<EventCard
event={item}
key={item.id}
latitude={latitude}
longitude={longitude}
/>
}
keyExtractor={item => item.id}
/>
以上两种解决方案都应该有效