Если вы используете react-navigation
, нижеприведенное решение может работать для вас.
Создайте функцию, которая запускает анимацию через несколько миллисекунд и передает ее на следующий экран в качестве параметров.Например,
ЭКРАН A
animateFunction() {
setTimeout(() => {
// start your animation
}, 100);
}
navigation.navigate(SCREEN_NAME, { startPrevScreenAnimation: animateFunction });
И на следующем экране вызовите эту функцию, когда компонент размонтируется (componentWillUnmount()
).Например,
ЭКРАН B
componentWillUnmount() {
this.props.navigation.state.params.startPrevScreenAnimation();
}
Я сказал несколько миллисекунд, потому что вы хотели бы, чтобы анимация запускалась после завершения перехода экрана.
ИЛИ
Добавьте слушателя на экран, который запускает событие, когда экран находится в фокусе.
if (this.props.navigation) {
this.willFocusSubscription = this.props.navigation.addListener(
'willFocus',
() => { // Run your animation },
);
}