反应本机绑定动画事件

时间:2017-03-10 10:52:06

标签: javascript reactjs react-native ecmascript-6 ecmascript-next

需要一些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});
    }
}

2 个答案:

答案 0 :(得分:11)

终于搞定了:

将函数绑定到Animated.event侦听器:

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

答案 1 :(得分:1)

您也可以使用% bundle exec rspec . Finished in 0.00325 seconds (files took 0.09777 seconds to load) 1 example, 0 failures

这样就可以了:

setValue()