React-Native SectionList 在 Android 滚动到视图之外的项目

React-Native SectionList scroll to item out of view on Android

对于我正在从事的项目,我需要创建一个组件,用户可以在其中向处于状态的数组添加条目,并创建一个 SectionList 来显示这些条目。此外,我需要 SectionList 在输入后立即向下滚动到最新条目。 Please check out this snack for an example

列表本身会显示所有条目和添加新条目后的更新,但是一旦列表包含的内容超出屏幕显示范围,它只能向下滚动到倒数第二个,我真的需要滚动到最后。

我尝试了很多东西,包括等待 setState、定义 contentContainerStyle、将整个东西转换为 VirtualizedListScrollView,所有我能想到的,但我就是做不到滚动到最后一个条目。

问题:如何让我的 SectionList 滚动到当前超出 SectionList 组件范围的最后一项?

更新 我知道这个问题是由于调用 scrollToLocation 时 SectionList 尚未包含该项目引起的。解决的关键似乎是等待列表的重新渲染

更新 2 SetState 有一个回调也没有解决这个问题。但是,this 评论中的解决方案有效。它的问题是它只适用于 .js 文件,而我在整个项目中都使用 .tsx 文件。我该如何克服这个问题?

我觉得这个问题比那个简单多了,而且跟你的风格有关。

您要求列表具有 height: Dimensions.get('window').height - 50 但此行没有任何作用,因为您无法固定 SectionList 的高度。

因此您可以删除它并添加边距:

list: {
  top: 50,
  marginBottom: 50,
},

显然这是 React-Native 0.59.6 中的错误。

在android,在setState的完成块工作时,需要设置0.2秒的超时时间,之后SectionList会一直向下滚动。但是,本应存在的项目尚未呈现,有时会在 0.5 秒后出现,从而导致非常笨重的感觉。

我已经发布了一个问题 Here,希望它能尽快修复