Je suis en train de créer une animation réagir native avec des images comme un compte à rebours comme ceci:Comment faire un compte à rebours Native avec des images animées?
3 --> ease out down duration 1 second each case
2 --> ease out down
1 --> ease out down
J'ai trouvé un moyen de le faire avec réagir animable, mais les résultats ne me convainquent pas, et si il y a une meilleure façon de le faire s'il vous plaît faites le moi savoir.
Je pense que chaque fois que je rencontre un nouveau rendu de l'élément commence à décompter, je dis de réagir en animant pour faire une itération de 3 décélération pour chaque nombre changeant le nombre d'image, ce n'est pas un moyen naturel de résoudre problème que j'ai.
Pour l'instant n'utilise pas redux, peut être plus tard je vais l'ajouter. Les propriétés de l'état: l'heure, l'heure actuelle pour commencer ne sont pas encore utilisées. Tout ce dont j'ai besoin, c'est l'effet d'un compte à rebours avec les images que je montre dans une animation bien définie.
Je pense qu'il est presque arrivé, mais il y a sûrement une meilleure façon de faire face à ce problème, toute suggestion est bien reçue, même si c'est un guide. J'ai aussi essayé avec réagir natif-Animer numéro, mais pas de chance ...
Merci à l'avance
import React from 'react';
import util from '../utils.js';
import * as Animatable from 'react-native-animatable';
import {
View,
Dimensions,
Image,
StyleSheet
} from 'react-native';
const width = Dimensions.get('window').width;
const height = Dimensions.get('window').height;
const styles = StyleSheet.create({
mainOption: {
},
container: {
width: width,
height: height,
flex: 1,
justifyContent: 'center',
flexDirection: 'column',
alignItems: 'center'
}
});
const timeLapse = [
<Image source={require('../images/1.png')} key={util.uniqueId()}/>,
<Image source={require('../images/2.png')} key={util.uniqueId()}/>,
<Image source={require('../images/3.png')} key={util.uniqueId()}/>
];
export default class StartingGameCountDown extends React.Component {
constructor(props) {
super(props);
this.state = {
time: props.time,
currentTimeToBegin: props.currentTimeToBegin,
imagePosition: 0
};
}
componentWillReceiveProps(nextProps) {
const nextImage = this.state.imagePosition + 1;
this.setState({
...this.state,
letters: nextProps.time,
currentTimeToBegin: nextProps.currentTimeToBegin,
imagePosition: nextImage
});
}
render() {
return (
<View style={styles.container}>
<Animatable.View
ref='countDown'
duration={1000}
delay={0}
iterationCount={3}
animation="fadeOutDown"
style={styles.mainOption}>
{timeLapse[this.state.imagePosition]}
</Animatable.View>
</View>
);
}
}