我最近将代码转换为功能组件,因此可以尝试使用钩子。我想在ScrollView中使用 ScrollTo 方法时遇到问题。我当时使用的是this.refs.scrollTo,但现在不能这样做。
我尝试从钩子中使用useRef,但也失败了。这是我的实现方式
const boardScreen = useRef(null);
...
const nextButtonHandler = async () => {
if (scrollPosition < (content.length - 1) * width) {
await setScrollPosition(scrollPosition + width);
boardScreen.current.scrollTo({ x: scrollPosition, animated: true
});
}
};
<ScrollView
horizontal
pagingEnabled
onMomentumScrollEnd={onScrollEnd}
showsHorizontalScrollIndicator={false}
ref={boardScreen}
onScroll={Animated.event([
{
nativeEvent: {
contentOffset: {
x: scrollX
}
}
}
])}
scrollEventThrottle={16}
>
{renderContent()}
</ScrollView>
有什么建议吗?还是我应该回去使用类解决这个问题?