我正在从Firebase中获取要传递到Flatlist组件的项目列表。
现在我要做:
fetch('https://demo.firebaseio.com/posts.json', {
headers: {
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(items => {
items = Object.entries(items).map(item => ({
...item[1],
key: item[0]
}));
this.setState({
posts: items,
isLoading: false
})
}).catch(err => {
alert(JSON.stringify(err));
});
然后:
<FlatList data={this.state.posts} renderItem={({item}) => {
return <Text>{item.title}}</Text>
}} keyExtractor={(item) => { return item.key; }} />
这可行,但是效率不高,我需要遍历项目两次,一次将其转换为数组,另一次将其呈现在平面列表上,这将是大型数据集的噩梦。
有什么建议吗?