我之前多次使用 Flatlist 的scrollToIndex
,但是我正在开发自定义日历,并且遇到了以下破坏该方法的用例:
日历具有2种模式:
日期选择:基本上只是可触摸的日期矩阵可供选择。
年份选择:可滚动的 FlatList ,其中包含可供选择的年份。
在给定时间只显示其中之一。
一切正常,除了我在Android中切换模式后将滚动位置返回到选定的年份(在iOS中按预期工作,您可以查看下面的小吃示例)。
这是一个小代码段,显示了我如何管理滚动更新。
componentDidUpdate(_, prevState) {
if (prevState.mode === TEXT_MODE && this.state.mode === LIST_MODE) {
console.log(`updated scroll to index ${this.state.selectedItem}`);
this.itemsScroll.current.scrollToIndex({
animated: false,
index: this.state.selectedItem,
viewPosition: 0.5,
viewOffset: 0,
});
}
}
HERE 是说明该错误的最小工作示例。
注意:: RN版本为0.57.1。除非修改列表的可见性,否则不会发生错误。