当数据为空时,React-Native FlatList呈现零状态

时间:2017-12-08 17:54:43

标签: react-native

数据为空时是否可以渲染备用组件?我不会仅仅呈现列表或不呈现列表的唯一原因是在两种情况下都需要ListHeaderComponentdata.length!data.length)...

const data = []
<FlatList
  contentContainerStyle={styles.list}
  data={data} // if empty or !data.length render <ZeroComponent/>

3 个答案:

答案 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 />}

希望有所帮助