Android 添加新元素后的平面列表滚动

Android 添加新元素后的平面列表滚动,android,ios,react-native,react-native-flatlist,Android,Ios,React Native,React Native Flatlist,我正在使用ReactNative的组件,它工作得非常好。现在,每当用户输入新元素/注释时,我想将其滚动到底部 <FlatList style={styles.commentList} data={commentList} keyExtractor={(item, index) => index} renderItem={this.renderRow.bind(this)} /> 现在,每当用户输入新评论时,commentList将被更新,FlatLis

我正在使用ReactNative的组件,它工作得非常好。现在,每当用户输入新元素/注释时,我想将其滚动到底部

<FlatList style={styles.commentList}
    data={commentList}
    keyExtractor={(item, index) => index}
    renderItem={this.renderRow.bind(this)}
/>
现在,每当用户输入新评论时,commentList将被更新,FlatList也将得到刷新,但我希望滚动到底部,以便用户可以阅读发布的最新评论。

查看以下内容: 这不是我的解决方案,但我用这种方法开始工作

源代码: 世博会22-RN 0.49

非常感谢

编辑:如果您只想滚动到底部,则scrollToEnd在新RN中可用。 像这样使用它

<FlatList
        ref={ (ref) => { this.flatList = ref; }}
        data={this.data}
        renderItem={ this.renderItem }
        keyExtractor={ this.keyExtractor}
        onScroll={ this.scrollToEnd}
      />
    ......

尝试将反转道具设置为true的平面列表。还不如反转数据数组
由于flatlist被反转,新数据被添加到第一个位置,并且由于此更新,flatlist自动滚动到第一个位置,在您的情况下,这是底部位置

您是否尝试了scrollToIndex?检查这里的文档@Srijith是的,我也尝试过。commentRef.scrollToIndex{animated:true,index:10}但不知何故,这也不起作用。如果你能在这里分享小吃,那就太好了。欢迎链接到解决方案,但是请确保你的答案在没有它的情况下是有用的:这样你的其他用户就会知道它是什么以及它为什么在那里,然后引用你链接到的页面中最相关的部分,以防目标页面不可用。在某种程度上,我自己也使用了链接的答案,但由于每个问题的上下文可能不同,我只是将整个答案发布到了链接上。对于您的情况,请确保为可变索引高度实现了getItemLayout。而且这个问题非常笼统,如果你想要一些具体的答案,请发布一个完整的问题,并附上更多的代码!谢谢。它会在最后还是第一个元素显示最近的/新的元素?
scrollToEnd = () => {
    const wait = new Promise((resolve) => setTimeout(resolve, 0));
    wait.then( () => {
        this.flatList.scrollToEnd({ animated: true });
    });
}