StackNavigator Обратный звонок - PullRequest
0 голосов
/ 03 мая 2018

Есть ли способ вызвать функцию, когда выполняется жест смахивания назад?

В моем представлении есть кнопка возврата в левом верхнем углу панели навигации. Когда эта кнопка нажата, я очищаю код, а затем открывается представление. Я пытаюсь выполнить тот же самый код очистки, когда задний жест StackNavigator выполняется в этом конкретном представлении. Возможно ли это с помощью стандартного жеста смахивания назад?

1 Ответ

0 голосов
/ 03 мая 2018

Вы можете подписаться на слушателей навигации , на определенном экране, где вы хотите выполнить операцию.

Переходы можно прослушать

const didBlurSubscription = this.props.navigation.addListener(
  'didBlur',
  payload => {
    console.debug('didBlur', payload);
  }
);

JSON object для payload будет выглядеть следующим образом

{
  action: { type: 'Navigation/COMPLETE_TRANSITION', key: 'StackRouterRoot' },
  context: 'id-1518521010538-2:Navigation/COMPLETE_TRANSITION_Root',
  lastState: undefined,
  state: undefined,
  type: 'didBlur',
};

поэтому вы можете добавить условное выражение на основе lastState

Также не забудьте удалить слушателя

didBlurSubscription.remove();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...