我正在使用新FlatList
组件并希望在生命周期方法中使用ScrollToIndex
(或ScrollToEnd
),例如componentDidMount
.
我有一个比方说 100 个项目的数组,我不想从第一个项目开始渲染,而是在开始时渲染。假设在第 50 项。当FlatList
一次只显示一个项目时,它可以按照此处所述的一些技巧工作:https ://github.com/facebook/react-native/issues/13202
componentDidMount() {
let wait = new Promise((resolve) => setTimeout(resolve, 500)); // Smaller number should work
wait.then( () => {
this.refs.flatlist.scrollToIndex({index: 4, animated: true});
});
}
此代码段scrollToIndex
在调用.componentDidMount
但是当我使用FlatList
视图包含 3x3 网格的地方时,我根本无法让它运行。当我使用scrollToIndex
并且索引超出指定的 propsinitialNumToRender
时,我只会收到一个scrollIndex out of range $ID
我无法理解的错误。提供的数据数组包含所有,例如 100 项。当我使我们成为 时scrollToEnd
,它只会在两者之间的某个地方停止,而不是在最后。对我来说,它看起来像某种错误,我不知道如何在初始渲染后滚动到 $X 项目。你能帮助我吗?
我很感激任何帮助或评论。
我在 iOS 和 Android(模拟器和设备)上尝试了 React-Native v0.43.0 和 v0.44.0,它总是一样的。