问题描述
我想要的输出: 当我单击卡时,它被翻转,并将isValidated设置为true。当我第二次单击时,它会翻转回到其原始位置。
我不明白为什么我需要两次触发onPressCard才能翻转卡片。
控制台输出也确实很奇怪:
“ rotationValue 0”,按1次
再次按下'rotationValue3 0 rotationValue 0'
这是代码:
interface RotativeCardProps {
card: RotativeCardType,index: number
}
const Rotative = ({ card,index }: RotativeCardProps) => {
const [isValidated,setIsValidated] = useState<boolean>(false);
let rotationValue = 0;
const animatedValue = new Animated.Value(0);
animatedValue.addListener(({ value }) => { rotationValue = value; });
const onPressCard = () => {
if (!isValidated) { setIsValidated(true); }
flipCard();
};
const flipCard = () => {
console.log('rotationValue',rotationValue);
if (rotationValue > 89) {
console.log('rotationValue2',rotationValue);
Animated.spring(animatedValue,{
tovalue: 0,friction: 8,tension: 10,useNativeDriver: true,}).start();
} else {
console.log('rotationValue3',{
tovalue: 180,}).start();
}
};
const frontInterpolate = animatedValue.interpolate({ inputRange: [0,180],outputRange: ['0deg','180deg'] });
const backInterpolate = animatedValue.interpolate({ inputRange: [0,outputRange: ['180deg','360deg'] });
const frontAnimatedStyle = { transform: [{ rotateY: frontInterpolate }] };
const backAnimatedStyle = { transform: [{ rotateY: backInterpolate }] };
```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)