在React Native中使用requestAnimationFrame

时间:2018-07-10 06:13:40

标签: react-native

如何在React Native中使用requestAnimationFrame。

我用它来实现这样的TouchableOpacity

this.requestAnimationFrame(() => {
    if (this.state.scrollEnabled)
        this._panel.transitionTo({toValue: 0});
    else {
        this.setState({scrollEnabled: true}, () => {
            this._panel.transitionTo({toValue: height})
        })
    }
});

并返回此错误

  

this.requestAnimationFrame不是函数

2 个答案:

答案 0 :(得分:8)

您必须从第一行中删除this

requestAnimationFrame(() => {
        ....
});

答案 1 :(得分:1)

实际上,建议不要在react-native中直接使用诸如requestAnimationFrame之类的计时功能。建议改用TimerMixin,这样做最终会像原始问题中的代码一样调用它。

因此,也许更好的答案是“您缺少TimerMixin”。

这是解释此位的官方文档:https://facebook.github.io/react-native/docs/timers#timermixin