数据为空时是否可以渲染备用组件?我不会仅仅呈现列表或不呈现列表的唯一原因是在两种情况下都需要ListHeaderComponent
(data.length
和!data.length
)...
const data = []
<FlatList
contentContainerStyle={styles.list}
data={data} // if empty or !data.length render <ZeroComponent/>
答案 0 :(得分:14)
<强>更新强>
react-native最近添加了ListEmptyComponent
const data = []
_listEmptyComponent = () => {
return (
<View>
// any activity indicator or error component
</View>
)
}
<FlatList
data={data}
ListEmptyComponent={this._listEmptyComponent}
contentContainerStyle={styles.list}
/>
const data = []
renderFooter = () => {
if (data.length != 0) return null;
return (
<View>
// any activity indicator or error component
</View>
);
};
<FlatList
contentContainerStyle={styles.list}
data={data}
ListFooterComponent={this.renderFooter}
/>
希望这有帮助
答案 1 :(得分:10)
有一个道具ListEmptyComponent
可以胜任。
<FlatList
data={this.state.data}
renderItem={this.renderItem}
keyExtractor={(item, index) => item.id}
ListHeaderComponent={this.showFilters()}
ListEmptyComponent={this.showEmptyListView()}
/>
答案 2 :(得分:1)
你可以做这样的事情
{data.length > 0 ? <FlatList ... /> : <EmptyList />}
希望有所帮助