我有一个主屏幕,带有水平滚动视图的女巫正在渲染带有项目的平面列表。 我有一些类别的抽屉菜单。每次单击菜单类别时,它只是从服务器获取数据,然后将其呈现到主屏幕。
当我第一次加载主屏幕时,滚动查看显示的项目,按预期方式,从左边的第一个项目开始,然后是第二个项目,第三个等等。
如果我滚动它,可以说到列表的中间,然后打开Menu并将不同的数据获取到同一屏幕,scrollView不会重置到初始位置,它仍然停留在中间。
我的问题是如何将“ scrollView”或“ flatlist”重置为初始位置(默认位置),因此,当我获取新数据时,无论从何处开始,它都应从左侧的第一个元素开始呈现它。
我将尝试在FlatList上进行引用
ref={(ref) => { this.flatListRef = ref; }}
然后在componentDidMount
中this.flatListRef.scrollTo({ animated: false, index: 0 });
但这不起作用(
答案 0 :(得分:0)
尝试一下:
class YourComponent extends Component {
constructor(props) {
super(props);
this.flatListRef = React.createRef();
}
componentWillReceiveProps() {
this.flatListRef.current.scrollTo({ animated: false, x: 0, y: 0 });
}
render() {
return (
<FlatList ref={this.flatListRef} contentContainerStyle={{ flex: 1 }}>
...
</FlatList>
);
}
}