【发布时间】:2017-05-08 19:54:47
【问题描述】:
我正在使用新的FlatList component 并希望在componentDidMount 等生命周期方法中使用ScrollToIndex(或ScrollToEnd)。
我有一个比方说 100 个项目的数组,我不想从第一个项目开始渲染,而是从头开始。假设在第 50 项。当 FlatList 一次只显示一个项目时,它可以按照此处所述的一些 hack 工作: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});
});
}
这个 sn-p 使scrollToIndex 在调用componentDidMount 几毫秒之后 运行。
但是当我使用视图包含 3x3 网格的 FlatList 时,我根本无法让它运行。当我使用scrollToIndex 并且索引超出指定的道具initialNumToRender 时,我只会收到一个我无法理解的错误scrollIndex out of range $ID。提供的数据数组包含所有,例如 100 项。当我让我们使用scrollToEnd 时,它只会停在两者之间而不是最后。对我来说,它看起来像是某种错误,我不知道如何在初始渲染后滚动到 $X 项目。你能帮帮我吗?
感谢任何形式的帮助或评论。
我在 iOS 和 Android(模拟器和设备)上尝试了 React-Native v0.43.0 和 v0.44.0,它总是一样的。
【问题讨论】:
标签: react-native react-native-flatlist