2017-06-02 11 views
1

React NativeのScrollViewで複数のonScrollイベントを使用することはできますか?ScrollViewの複数のonScrollイベントがネイティブに反応しますか?

私がいる問題は、私はそうのようなListViewをレンダリングコンポーネント持っていることです:あなたはそれを購読Animaionイベントがすでにあります見ることができるように

<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} 
    /> 

を、私もできるようにしたいですthis.props.onScrollを渡す場合は、これをレンダリングする上位コンポーネントに対して異なるスクロール機能が必要です。

これは可能ですか?何か案は?

答えて

2

イベントを組み合わせる場合は、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) 
} 
3

あなたが "useNativeDriver" を使用している場合:でも、 "useNativeDriver" を使用せずに

onScroll = Animated.event(
     [{nativeEvent: {contentOffset: {x: this.xOffset}}}], 
     { 
      listener: (event)=>{ 
       //do something here like Keyboard.dismiss() or this.props.onScroll(event) 
      }, 
      useNativeDriver: true 
     } 
    ); 
+0

これは私のために働いたが – pucky124

関連する問題