FlatList滚动到顶部,而FlatList在子组件中

时间:2019-11-18 04:19:35

标签: react-native react-native-flatlist

我对本机做出了新的反应,想问一下在FlatList中点击按钮时如何滚动到顶部。但是,就我而言,FlatList位于子组件内部,我不知道如何传递引用。

我在父组件中尝试过createRef()并将其传递给FlatList所在的子组件。但是,仍然会出现类似 _this.flatListRef.scrollToIndex的错误

这是到目前为止我尝试过的: link expo

1 个答案:

答案 0 :(得分:1)

尝试以下操作,

 _didTapOnButton=()=>{
   setTimeout(() => {
    if (this.timerFlatlistRef)
      this.timerFlatlistRef.scrollToIndex({
        animated: true,
        index: 0,
      });
  }, 1000);
 }

 _getItemLayout = (data, index) => ({
    length: 24,
    offset: 100 * index,
    index
 });

_renderItems = ({ item, index }) => {
 ...
 ...
}

...
<FlatList
     ref={ref => (this.timerFlatlistRef = ref)}
     style={{ flex: 1, paddingTop: 10 }}
     data={dayHours}
     getItemLayout={this._getItemLayout}
     renderItem={this._renderItems}
     keyExtractor={(item, index) => String(index)}
     extraData={this.state}
/>
...