3

일부 JS에 대한 약간의 도움이 필요합니다. 필요에 따라 애니메이션 이벤트를 바인딩 할 수 있습니까?네이티브 바인딩 애니메이션 이벤트

onScroll={ 
    Animated.event([ 
     { 
      nativeEvent: { 
       contentOffset: {y: this.state.animTop} 
      } 
     } 
    ]) 
}  

가 나는 또한이 같은 두 바인딩 시도이

onScroll={(e) => { 
    let positionY = e.nativeEvent.contentOffset.y; 
    this._handleScroll(positionY); 
    this.setState({y: positionY}) 

}} 

을 할 필요가 있지만 Animated.event

을 수행하지 :

나는이 작업을 수행해야

componentDidMount() { 
    this._handleScroll = this._handleScroll.bind(this); 
} 
onScroll={ 
    this._handleScroll 
} 
_handleScroll(e) { 
    Animated.event([ 
     { 
      nativeEvent: { 
       contentOffset: {y: this.state.animTop} 
      } 
     } 
    ]); 
    if(e > 30) { 
     this.setState({statusBarHidden: true}); 
    } else { 
     this.setState({statusBarHidden: false}); 
    } 
} 

답변

8

마지막으로 작동 :

,210

는 Animated.event 리스너 기능을 바운드 : 또한 setValue()를 사용할 수

onScroll={Animated.event(
        [{ nativeEvent: { contentOffset: { y: this.state.animTop } } }], 
        { listener: this._handleScroll }, 
       )} 
+0

는 iOS 및 Android에서 당신을 위해이 작업인가? – GollyJer

1

.

그래서 다음과 같이 작동합니다 :

_handleScroll(event) { 
    // Do stuff 
    this.state.animTop.setValue(event.nativeEvent.contentOffset.y); 
    // Do other stuff 
}