React Native: элемент управления Обновить недоступен, если я очищаю источник данных Listview

Когда я устанавливаю источник данных для своего списка, управление обновлением (выпадающее для обновления) работает отлично. В случае, если источник данных пуст, я не могу раскрыть список.

Мой список выглядит так:

                <View contentContainerStyle={{flex: 1}}>
                    <ListView
                        style={styles.container}
                        dataSource={this.state.dataSource}
                        renderRow={(data) => <NotificationRow {...data}/>}
                        enableEmptySections={true}
                        refreshControl={
                            <RefreshControl
                                refreshing={this.state.refreshing}
                                onRefresh={this._onRefresh.bind(this)}
                                tintColor="#ff0000"
                                title="Loading..."
                                titleColor="#ffffff"
                                colors={['#ffffff']}
                                progressBackgroundColor="#1976D2"
                            />
                        }
                    />
                </View>

Есть ли какие-либо реквизиты, которые мне нужно установить на Listview или любой другой способ включить раскрывающийся список для обновления списка, даже если источник данных пуст / пуст?

Я ищу эту функцию, потому что в первый раз я загружаю данные из Async Storage. При опускании для обновления я очищаю хранилище и извлекаю новые данные.

2 ответа

Решение

Потяните вниз, чтобы обновить работу, если я потяну из региона, начиная с красной линии

Понял это, когда я тестировал приложение на своем телефоне вместо эмулятора. Представление списка всегда присутствует, даже если источник данных пуст. В моем случае просмотр списка начинался там, где текстовое представление заканчивалось на красной линии.

Вам нужно использовать опору вызова refreshing={true} и с завершением процесса, независимость, если есть новые данные или нет, вам нужно установить refreshing={false} уведомить список, что у вас нет больше данных и скрыть индикатор загрузки.

render() {
    return (
      <ListView
        refreshControl={
          <RefreshControl
            refreshing={this.state.refreshing}
            onRefresh={this._onRefresh.bind(this)}
          />
        }
        ...
      >
      ...
      </ListView>
    );
Другие вопросы по тегам