Мне нужно изменить состояние строки в ScrollView (то же самое в ListView), но использование setState компонента заставляет прокрутку сбрасывать ее положение вверх.
<ScrollView
{...this.panResponder.panHandlers}
bounces={false}
onScroll={() => {
this.scrollIsScrolling = true;
}}
onTouchEnd={() => {
this.scrollIsScrolling = false;
}}
onMomentumScrollEnd={() => {
this.scrollIsScrolling = false;
}}
scrollEnabled={this.state.scrollEnabled}
removeClippedSubviews={false}
enableEmptySections
style={styles.listView}
>
{this.props.settings.map((setting, i) => {
return (
<IntegrationSlideupCell
key={i}
title={setting.title}
selected={this.state.selectedSetting === i}
selectedGradient={this.props.integration.selectedGradient}
onPress={() => {
this.setState({ selectedSetting: i });
}}
/>
);
})}
</ScrollView>
UPD: Удаление пользовательских обработчиков panHandlers, onScroll, onTouchEnd, onMomentumScrollEnd и других свойств не имеет значения. Единственное, что вызывает его setState.
scrollToIndex()
функциональность? - person Khalil Khalaf   schedule 02.10.2017