Как я могу изменить цвет фона с переходом с помощью reanimated v2

Я новичок в реакции-родной-реанимации. Пробую менять backgorundCOlor в зависимости от состояния. На данный момент у меня есть такой код:

      const [visible, setVisible] = useState<boolean>(true)
const backgroundColor = useSharedValue(0);
const backgroundColorStyle = useDerivedValue(() => interpolateColor(backgroundColor.value, [0, 1], ['transparent', 'rgba(0, 0, 0 , .5)']) )

const backgroundInterpolate = useAnimatedStyle(() => ({
    backgroundColor: backgroundColorStyle.value
}), [])

  .... 

<Animated.View style={[{height: '65%'}, backgroundInterpolate]}> 
   ....

</Animated.View>

Итак, с этим кодом я получил такую ​​ошибку:

Может быть, я сделал его слишком сложным для такой простой задачи, как изменение backgroundCOlor с переходом. В любом случае я прошу вас о помощи, cz я нахожусь в тупике.

1 ответ

Я бы упростил его, сделав само общее значение логическим, а затем используя его для управления цветом фона.

      const backgroundColor = useSharedValue(false) 

И я думаю, ты тоже можешь useSharedValue(visible)

      
const backgroundInterpolate = useAnimatedStyle(() => ({
    backgroundColor: backgroundColor.value ? 'transparent': 'rgba(0, 0, 0), .5)', 
}), [])

Другие вопросы по тегам