我构建了一个可滚动SectionList的字母洗涤器。通过使用getItemLayout对SectionList进行了优化。如果我在字母上滑动,则滚动会按计划进行,但在我从屏幕上松开手指之前,SectionList不会重新呈现。
See this expo snack
任何人如何解决这个想法?
最佳答案
通过查看PanResponder的源代码来解决它。 PanResponder通过InteractionManager设置交互句柄。您可以通过this.panResponder.getInteractionHandle()
(未记录的功能)访问此句柄,然后在每次滚动到SectionList中的某个位置时将其清除:
if (this.panResponder.getInteractionHandle()) {
InteractionManager.clearInteractionHandle(
this.panResponder.getInteractionHandle()
);
}
这会将SectionList在队列中上移,以进行可见性计算和渲染。
我建议通过尽可能少地清除交互句柄来进行优化,因为InteractionManager出于性能原因而使用。
关于react-native - react native : Optimized SectionList does not rerender after scrollToLocation,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47411170/