У меня есть 3 компонента ListView
внутри одного компонента ScrollView
, например:
<ScrollView>
<Header />
<ListView onEndReached={() => alert('load more 1')}/>
<ListView onEndReached={() => alert('load more 2')}/>
<ListView onEndReached={() => alert('load more 3')}/>
<Footer />
</ScrollView>
Компонент Header
имеет некоторое общее содержимое, а также имеет 3 вкладки, которые вызывают отображение соответствующих ListView
Проблема в том, что любой ListView
с onEndReached={() => alert('load more 1')}
никогда не запускает оповещение, поэтому я никогда не могу загрузить больше, когда прокручиваю вниз и дохожу до конца списка. Удалите обертку ScrollView
, и оповещение запустится, но обычное Header
не прокручивается, так как мы только что удалили обертку ScrollView
. Заголовок должен прокручиваться вместе со списком, поэтому я завернул все, что нужно прокручивать, в файл ScrollView
.
ВАЖНОЕ ПРИМЕЧАНИЕ. Я не могу использовать ListView
с renderHeader={this.header}
для этого сценария. Потому что, несмотря на то, что Header
будет прокручиваться, он будет перерисовывать общий Header
и 3 вкладки для каждого ListView
каждый раз, когда ListView
рендерится, а не один раз. Таким образом, новый Header
повторный рендеринг каждый раз для каждого ListView
не поможет приложению.
Ищете решение этой проблемы, когда Header
прокручивается со списками, а onEndReached
запускается для видимого ListView
.