2017-04-20 26 views
2

私は正しく理解していますか? この2つのコードセットは同じ意味を持っていますか?パフォーマンスや信頼性に違いはありますか?Animated.EventはReact Nativeでどのように機能しますか?

<ScrollView 
onScroll={Animated.event(
    [{nativeEvent: {contentOffset: {y: this.state.scrollY}}}] 
)} 
> 
</ScrollView> 

handleScroll(e){ 
    this.setState({ scrollY : e.nativeEvent.contentOffset.y }); 
} 

<ScrollView 
onScroll={(e) => this.handleScroll(e)} 
> 
</ScrollView> 

おかげ

答えて

0

それは同じではありません。 Animated.eventは、スクロール、パンニング、または他のイベントのようなジェスチャーを直接アニメーションの値にマップするために使用されます。最初の例ではthis.state.scrollYAnimated.Valueです。 this.state.scrollYは、スクロールイベントでトリガされたY値(単なる数)である、あなたの第二の例では

constructor(props) { 
    super(props); 
    this.state = { 
    scrollY: new Animated.Value(0) 
    }; 
} 

が、完全に:あなたはおそらくそれを初期化し、どこかのコード、多分あなたのコンストラクタは次のようになりますを持っているでしょうアニメーションとは無関係です。アニメーションでAnimated.Valueを使用できるので、その値を使用することはできませんでした。

it's explained here in the documentation

関連する問題