是否可以在React Native的ScrollView中拥有多个onScroll事件?
我遇到的问题是我有一个像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
,以防我需要不同的滚动功能来处理渲染此组件的更高组件。< / p>
这可能吗?有什么想法吗?
答案 0 :(得分:4)
如果您正在使用&#34; useNativeDriver&#34;:
onScroll = Animated.event(
[{nativeEvent: {contentOffset: {x: this.xOffset}}}],
{
listener: (event)=>{
//do something here like Keyboard.dismiss() or this.props.onScroll(event)
},
useNativeDriver: true
}
);
答案 1 :(得分:3)
如果你想要结合事件,我只需将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)
}