【发布时间】:2019-11-04 13:40:56
【问题描述】:
这是我们的 FlatList,打个招呼:
<FlatList
data={this.state.dates}
...
/>
我们提供以下日期:
this.state = {
dates: [
'21/06/2019',
'22/06/2019',
'23/06/2019',
]
};
那么当可见日期发生变化时(onViewableItemsChanged),如果我们最终到达第一项(21/06/2019),我们会在前面添加数据,这样新的状态就变成了:
dates: [
'18/06/2019',
'19/06/2019',
'20/06/2019',
'21/06/2019',
'22/06/2019',
'23/06/2019',
]
问题:
在我们预先添加数据之后,我们现在看到的是 2019 年 6 月 19 日。
这是因为在底层,21/06/2019 曾经是索引 0,但在前置后,索引 0 对应于 19/06/2019。
我们想要什么:
我正在努力做到这一点,以便在预置数据后一天保持不变。
请不要告诉我使用scrollToPosition,因为这确实是一种黑客行为,而不是解决方案。
这个问题有什么好的解决办法吗?
谢谢
【问题讨论】:
-
因为您要更改索引,所以如果没有
scrollToIndex,我不明白您怎么能做到这一点(或者,这将更加骇人听闻)。如果你的物品高度相同,滚动会很快,你可以使用getItemLayout优化渲染。 -
您找到合适的解决方案了吗?我在我的项目中面临同样的问题。
-
没有,目前还没有
-
@SudoPlz 你找到解决办法了吗?
-
不是真的,所以我们最终在 react-native 上创建了自己的列表组件,我试图说服我们的管理层允许我们发布开源代码。
标签: react-native react-native-flatlist react-native-listview