ждите, чтобы закончить навигационно-навигационный переход - PullRequest
0 голосов
/ 27 апреля 2018

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

Что-то вроде:

await dispatch({
  type: 'Navigation/goBackTo',
  routeName: 'Main',
})
dispatch(anotherAction())

В настоящее время я использую обходной путь setTimeout.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Возможно, вы можете подписаться на событие didFocus реагирующей навигации, чтобы запустить второе действие.

Читайте об этом здесь: https://reactnavigation.org/docs/navigation-prop.html#addlistener-subscribe-to-updates-to-navigation-lifecycle

0 голосов
/ 27 апреля 2018

Специально не относится к реагирующей навигации, но, тем не менее, полезно: API-интерфейс InteractionManager от Reaction-native.

Существует метод runAfterInteractions () , который будет вызываться после завершения всех анимаций, поэтому в случае навигации я считаю его удобным инструментом. Например, вы можете сделать что-то вроде этого:

class Main extends Component {

    componentDidMount() {
        // 1: Component has been mounted off-screen
        InteractionManager.runAfterInteractions(() => {
            // 2: Component is done animating
            // 3: Do your anotherAction dispatch() here
        }); 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...