I am trying to stop animation in react native, but it does not work. I try to do this with stopAnimation method
This is my code:
constructor(props) {
super(props);
//...
this.state = {
posY: new Animated.Value(0),
posX: new Animated.Value(0),
//...
};
}
componentWillMount(){
//...
let eventEmitter = getGlobalEventEmitter();
eventEmitter.emit('initialize', {words : true});
eventEmitter.addListener('startGame', ()=>{
this.setState({initialized: true});
this.updateText();
});
}
updateText(){
let currentText = [];
//... set some values to currentText
this.props.setText(currentText); // store in redux
this.startText(this.effects[textEffect]['duration']);
}
startText(duration) {
let viewHeight = 530;
let fallTo = 500;
Animated.timing(
this.state.posY,
{
toValue: fallTo,
duration: duration
}
).start();
let stopAnimation = function(){
this.state.posY.stopAnimation();
console.log("ANIMATION SHOULD STOP");
};
stopAnimation = stopAnimation.bind(this);
eventEmitter.addListener('wordGuessed', ()=>{
stopAnimation();
});
}
In the other component I am firing wordGuessed
event, and the console log works. What I am doing wrong?
Animations allow you to convey physically believable motion in your interface. React Native provides two complementary animation systems: Animated for granular and interactive control of specific values, and LayoutAnimation for animated global layout transactions.
Working with animationsAnimations are started by calling start() on your animation. start() takes a completion callback that will be called when the animation is done.
Enabling usage of native driver is the easiest way of improving your animations performance quickly. However, the subset of style props that can be used together with native driver is limited. You can use it with non-layout properties like transforms and opacity. It will not work with colors, height, and others.
Just call
Animated.timing(
this.state.posY
).stop();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With