是否可以在React Native的ScrollView中有多个croll事件?
我遇到的问题是我有一个像这样呈现ListView
的组件:
<ListView
onScroll={Animated.event(
[{nativeEvent: {contentOffset: {y: this.state.scrollY}}}],
{onScroll: this.props.onScroll}
)}
scrollEventThrottle={10}
dataSource={stuff}
removeClippedSubviews={false}
renderSeparator={this.makeSeparator}
renderRow={this.makeStuff}
enableEmptySections={true}
/>
您可以看到,已经订阅了Animaion事件,但我也希望能够通过this.props.onScroll
,以防我想要不同的滚动功能,以使其呈现此元件的较高组件。
这可能吗?有什么想法吗?
如果您使用的是" usenativedriver":
onScroll = Animated.event(
[{nativeEvent: {contentOffset: {x: this.xOffset}}}],
{
listener: (event)=>{
//do something here like Keyboard.dismiss() or this.props.onScroll(event)
},
useNativeDriver: true
}
);
如果您想结合事件,我只会将Animated.event
取出自己的方法。所以
<ListView
onScroll={this.onScroll.bind(this)}
...
/>
onScroll(event) {
if(this.props.onScroll) this.props.onScroll(event)
Animated.event(
[{nativeEvent: {contentOffset: {y: this.state.scrollY}}}],
{onScroll: this.props.onScroll}
)(event)
}