FlatListのListEmptyComponentをサポートしていないReact-Nativeバージョン0.43.0を使用しています。したがって、私はあなたがイメージから見ることができるようにテキストを垂直にListHeaderComponentを使用してフラットリストの画面の中央に空のメッセージを表示する
任意のアイデアを中心にされていない、リストが空の時にビューをレンダリングするために
import React, { Component } from 'react';
import { Text, View, StyleSheet,FlatList } from 'react-native';
class App extends Component {
constructor(props) {
super(props);
this.state = {
listData: []
}
}
render() {
return (
<View style={styles.container}>
<FlatList
renderItem={() => null}
data={this.state.listData}
ListHeaderComponent={() => (!this.state.listData.length?
<Text style={styles.emptyMessageStyle}>The list is empty</Text>
: null)
}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex:1
},
emptyMessageStyle: {
textAlign: 'center',
//My current hack to center it vertically
//Which does not work as expected
marginTop: '50%',
}
});
をListHeaderComponentを使用していますどのようにFlatListの中でそれを中心に置くのですか?
私はすでにjustifyContent、alignItemsなどを適用しようとしましたが、使用は試みていません。
これはsnack.expoへのリンクです - https://snack.expo.io/S16dDifZf
に基づいてFlatListをレンダリング私はそれは良いアイデアだ、我々はFlatListのスタイルを知りませんでした。しかし、私はFlatListスタイルの別のチェックを導入したくないので、この空のテキストをコンポーネントとして個別にレンダリングしておきたいと思います。 FlatListスタイルを変更せずに、そのコンポーネントスタイルを変更するだけで、これを行う可能性はありますか? –
FlatListを条件付きで 'this.state.listData.length'に基づいてレンダリングすることができます。このアプローチを追加するために私の答えを編集しています。 – raghu
しかし、機能をプルダウンしてリフレッシュするだけで、FlatList内に入ることができます。 –