#react-native #animation
#react-native #Анимация
Вопрос:
Привет! Недавно я начал изучать React Native и хочу, чтобы на этой кнопке постоянно мигали два цвета ((( Пожалуйста, проверьте мой код, я не могу заставить его работать. Конечно, он должен работать на двух платформах IOS и Android
const InviteChildButton = ({ changeInvite }: IProps) => {
const { invitation } = useTranslation();
const { username } = useSelector((state: RootState) => state.child);
const animatedColor = new Animated.Value(0);
const backgroundColorAnimation = animatedColor.interpolate(
{
inputRange: [0, 0.5,],
outputRange: ['rgba(113, 255, 139, 0.1)', 'rgba(255, 169, 139, 0.1)']
});
useEffect(() => {
Animated.timing(backgroundColorAnimation, {
toValue: 1,
duration: 5000,
useNativeDriver:true
}).start();
}, []);
return (
<View style={styles.container}>
<View>
<CustomText
style={styles.text}
text={`${invitation} ${username}`}
variant='h3'
type='normal'
/>
</View>
<Animated.View style={[styles.button, {backgroundColor: backgroundColorAnimation }]}>
<TouchableOpacity onPress={changeInvite}>
<Image style={styles.image} source={Images.inviteLogoButton} />
</TouchableOpacity>
</Animated.View>
</View>
);
};
export default InviteChildButton;
Комментарии:
1. не могли бы вы обернуть анимированный вид с помощью touchble, а не того, что у вас есть
<Touchble><Animatev.View></Touchble>
Ответ №1:
Animated.timing
ожидает анимированное значение, попробуйте изменить backgroundColorAnimation на animatedColor и отключить собственный драйвер, я не думаю, что он поддерживает интерполяцию цвета фона.