FlatList は、リスト項目をロードするために使用できるコンテナーです。ヘッダーとフッターのサポート、複数列のサポート、垂直/水平スクロール、遅延読み込みなどを提供します。
FlatList の重要な機能をいくつか紹介します。
フラットリストの基本構造は次のとおりです-
<FlatList data={DataContainer} renderItem={ yourenderItem} keyExtractor={item => item.id} />
FlatList は、モバイル画面の現在のビュー ポートに収まる限られた数のアイテムを表示する役割を担う VirtualizedList コンポーネントを通じて実装されます。残りのデータは、ユーザーがスクロールするとレンダリングされます。 data や renderItem などの基本プロパティを使用して FlatList を作成できます。
FlatList を使用するには、以下に示すように React-Native からインポートする必要があります-
import { FlatList} from "react-native";
FlatList のいくつかの重要なプロパティを以下に示します-
< /th>Description | |
---|---|
Data | 表示するデータを含む配列。|
renderItem | renderItem({ アイテム、インデックス、区切り文字 });
separators.highlight(), separators.unhighlight(), separators.updateProps(). ログイン後にコピー |
ListEmptyComponent | リストが次の場合に使用されます。 empty 呼び出されるコンポーネント クラス、レンダリング関数、またはレンダリング要素。このコンポーネントは、リストが空のときに何らかのアクションを実行する場合に役立ちます。|
ListFooterComponent | すべてのアイテムの下部にレンダリングされるコンポーネント クラス、レンダー関数、またはレンダー要素。|
ListFooterComponentStyle | フッター コンポーネントに必要なスタイルをここで実行できます。|
< /strong>すべての項目の上にレンダリングされるコンポーネント クラス、レンダー関数、またはレンダー要素。 | |
ヘッダー コンポーネントに必要なスタイルをここで実行できます。 | |
true に設定すると、このプロパティは項目を水平方向にレンダリングします。 strong> | |
指定されたインデックスの一意のキーを抽出します。このキーはキャッシュに使用され、アイテムの並べ替えを追跡するためにも使用されます。 (項目: オブジェクト、インデックス: 数値) => 文字列; | < /tr>例 1: FlatList 内の項目を垂直方向に表示する |
import { FlatList , Text, View, StyleSheet } from "react-native";
this.state = { data: [ { name: "Javascript Frameworks", isTitle: true }, { name: "Angular", isTitle: false }, { name: "ReactJS", isTitle: false }, { name: "VueJS", isTitle: false }, { name: "ReactNative", isTitle: false }, { name: "PHP Frameworks", isTitle: true }, { name: "Laravel", isTitle: false }, { name: "CodeIgniter", isTitle: false }, { name: "CakePHP", isTitle: false }, { name: "Symfony", isTitle: false } ], stickyHeaderIndices: [] };
renderItem = ({ item }) => { return ( <View style={styles.item}> <Text style={{ fontWeight: (item.isTitle) ? "bold" : "", color: (item.isTitle) ? "red" : "gray"}} >{item.name}</Text> </View> ); };
<View style={styles.container}> <FlatList data={this.state.data} renderItem={this.renderItem} keyExtractor={item => item.name} /> </View>
には data 属性が与えられ、 >this renderItem 関数は、renderItem プロパティに割り当てられます。 データに基づいて、key プロパティがデータ配列内の唯一のプロパティであり、props keyExtractor に同じ値を提供する必要があることがわかります。指定しない場合は、配列インデックスを
key値として扱います。 したがって、名前を一意のキーとして扱い、それを keyExtractor に割り当てます。
keyExtractor={item => item.name}
import React from "react"; import { FlatList , Text, View, StyleSheet, StatusBar } from "react-native"; export default class App extends React.Component { constructor() { super(); this.state = { data: [ { name: "Javascript Frameworks", isTitle: true }, { name: "Angular", isTitle: false }, { name: "ReactJS", isTitle: false }, { name: "VueJS", isTitle: false }, { name: "ReactNative", isTitle: false }, { name: "PHP Frameworks", isTitle: true }, { name: "Laravel", isTitle: false }, { name: "CodeIgniter", isTitle: false }, { name: "CakePHP", isTitle: false }, { name: "Symfony", isTitle: false } ], stickyHeaderIndices: [] }; } renderItem = ({ item }) => {return ();}; render() { return ( {item.name} ); } } const styles = StyleSheet.create({ container: { flex: 1, marginTop: StatusBar.currentHeight || 0, }, item: { margin: 10, padding: 20, marginVertical: 8, marginHorizontal: 16, } });
FlatList 項目を水平方向に表示するには、props Horizon を変更するだけです。 ntal={true} これを FlatList コンポーネントに追加するだけです。
import React from "react"; import { FlatList , Text, View, StyleSheet, StatusBar } from "react-native"; export default class App extends React.Component { constructor() { super(); this.state = { data: [ { name: "Javascript Frameworks", isTitle: true }, { name: "Angular", isTitle: false }, { name: "ReactJS", isTitle: false }, { name: "VueJS", isTitle: false }, { name: "ReactNative", isTitle: false }, { name: "PHP Frameworks", isTitle: true }, { name: "Laravel", isTitle: false }, { name: "CodeIgniter", isTitle: false }, { name: "CakePHP", isTitle: false }, { name: "Symfony", isTitle: false } ], stickyHeaderIndices: [] }; } renderItem = ({ item }) => {return ();}; render() { return ( {item.name} ); } } const styles = StyleSheet.create({ container: { flex: 1, marginTop: 100, }, item: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', padding: 30, margin: 2, borderColor: '#2a4944', borderWidth: 1, height:100, backgroundColor: '#d2f7f1' } });
以上がFlatList コンポーネントとは何ですか? React Native での使用方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。