Вы должны реализовать свой собственный метод scrollToTarget, чтобы достичь этого.
Мое решение будет что-то.как это:
import * as React from 'react';
import { Text, View, StyleSheet, ScrollView, findNodeHandle, Button } from 'react-native';
export default class App extends React.Component {
itemRefs = [];
state = {
dummyList: ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7"]
};
scrollToItem = () => {
// Scroll to Item 2
let refToScroll = this.itemRefs["Item 2"];
refToScroll.measureLayout(findNodeHandle(this.listRef), (x,y) => {this.listRef.scrollTo({x: 0, y: y, animated: true})});
}
renderItems = ({ item }) => {
return (
<View ref={ref => {this.itemRefs[item] = ref}} style={{height: 200, margin: 20, borderWidth: 5, borderColor: "black"}}>
<Text>{item}</Text>
</View>
)
}
render() {
return (
<View>
<View style={{height: 25}}/>
<Button containerStyle={{height: 55}} title="Click to scroll" onPress={this.scrollToItem} />
<ScrollView
ref={ref => {this.listRef = ref}}
data = {this.state.dummyList}
renderItem ={this.renderItems}
>
{this.state.dummyList.map(item => (
<View ref={ref => {this.itemRefs[item] = ref}} style={{height: 200, margin: 20, borderWidth: 5, borderColor: "black"}}>
<Text>{item}</Text>
</View>
))}
</ScrollView>
</View>
);
}
}