Scrollview React本机上的多个滚动事件



是否可以在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)
}

最新更新