Szukaj…


Prosty przykład

ListView - podstawowy komponent zaprojektowany do wydajnego wyświetlania pionowo przewijanych list zmieniających się danych. Minimalnym interfejsem API jest utworzenie ListView.DataSource, zapełnienie go prostą tablicą obiektów blob danych i utworzenie wystąpienia komponentu ListView z tym źródłem danych oraz wywołanie zwrotne renderRow, które pobiera obiekt blob z tablicy danych i zwraca komponent możliwy do renderowania.

Minimalny przykład:

getInitialState: function() {
  var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
  return {
    dataSource: ds.cloneWithRows(['row 1', 'row 2']),
  };
},

render: function() {
  return (
    <ListView
      dataSource={this.state.dataSource}
      renderRow={(rowData) => <Text>{rowData}</Text>}
    />
  );
},

ListView obsługuje również bardziej zaawansowane funkcje, w tym sekcje z lepkimi nagłówkami sekcji, obsługę nagłówków i stopek, wywołania zwrotne po osiągnięciu końca dostępnych danych (onEndReached) i na zestawie wierszy, które są widoczne w zmianie rzutni urządzenia (onChangeVisibleRows), oraz kilka optymalizacji wydajności.

Istnieje kilka operacji związanych z wydajnością, które mają na celu płynne przewijanie ListView przy dynamicznym ładowaniu potencjalnie bardzo dużych (lub koncepcyjnie nieskończonych) zestawów danych:

  • Ponownie renderuj tylko zmienione wiersze - funkcja rowHasChanged dostarczona do źródła danych informuje ListView, czy musi ponownie renderować wiersz, ponieważ dane źródłowe uległy zmianie - zobacz ListViewDataSource, aby uzyskać więcej informacji.
  • Renderowane wiersze z ograniczoną szybkością - domyślnie renderowany jest tylko jeden wiersz na pętlę zdarzeń (dostosowywany za pomocą prop pageSize). Dzieli to pracę na mniejsze części, aby zmniejszyć ryzyko upuszczenia ramek podczas renderowania wierszy.


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow