Я пытаюсь получить высоту детей в моем компоненте, чтобы реализовать анимацию.
Расширено дочерними элементами
Я хотел бы получить высоту дочерних компонентов, чтобы я мог анимировать значение высоты, чтобы добиться анимированного расширения.
{expanded ? (
<>
<Animated.View style={{height: someAnimatedHeight}}>
<View onLayout={handleLayout}>
{children}
</View>
</Animated.View>
<PromoCodeArea />
</>
) : (
<PromoCodeArea />
)}
ручкамакет
const handleLayout = ({ nativeEvent }) => {
setContainerHeight(nativeEvent.layout.height);
};
Однако handleLayout
не предоставляет высоту, пока карточка не развернута. Я могу заставить анимацию работать с жестко заданным размером.
Я бы хотел, чтобы анимация была гибкой и расширялась до высоты детей.
Когда handleLayout
не расширен, возвращается значение 0, поэтому я не могу установить toValue
:
const startAnimation = () => {
Animated.spring(heightAnimation, {
toValue: 125, <-- like this to be based on the height of children
}).start();
};
Мне не удалось найти примеры того, как это достигается с помощью функциональных компонентов и хуков.