Я пытался заставить простую анимацию работать с PanResponder и API React Animated. Это то, что у меня пока есть:
export default class Main extends Component {
constructor(props) {
super(props)
this.state = {
y: new Animated.Value(0)
}
this._panResponder = PanResponder.create({
onMoveShouldSetResponderCapture: () => true,
onMoveShouldSetPanResponderCapture: () => true,
onPanResponderMove: Animated.event([
null,
{
dy: this.state.y
}
]),
});
}
render() {
let { y } = this.state;
return (
<View {...this._panResponder.panHandlers} style={{ flex: 1 }} >
<LinearGradient start={{ x: 1.0, y: 0 }} end={{ x: 0.0, y: 1.0 }} colors={['rgba(0,187,9,0.575)', 'rgba(255, 217, 0 , 0.719)']} style={{ alignItems: "center", justifyContent: "center", margin: 0, flex: 1, padding: 20, width: "100%" }}>
<ResponsiveImage style={{ transform: [{ rotateZ: y + " deg" }, { perspective: 1000 }], marginBottom: 100 }} source={require('./assets/images/logo.png')} initWidth="225" initHeight="220" />
</LinearGradient>
</View>
);
}
}
С прикрепленным выше кодом анимация вращения не работает. Это работает только тогда, когда я использую следующий код вместо текущего метода onPanResponderMove.
onPanResponderMove: (a,b)=>{this.setState({y: b.dy}) }
Почему метод Animated.Event не работает?