React Navigation Drawer Перезаписать навигатор onBackdropPress или onClose слушатель? - PullRequest
0 голосов
/ 13 декабря 2018

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

Я могу сделать так, чтобы единственный способ открыть ящик - через меня вызвать this.props.navigation.openDrawer (), и я могу сделать то же самое для закрытия, за исключением того, что когда вы нажимаете на фоне ящика, он закрывается.Мне нужно либо найти способ переписать / отключить такое поведение нажатия на фоне закрытия ящика.Или мне нужен слушатель, который будет прослушивать событие закрытия ящика.

Использование React Navigation v3.

Я использую свой собственный contentComponent, и в этом компоненте я уже пытался использовать willFocusи подобные события типа willBlur, но, похоже, они не работают:

  componentDidMount() {
    this.willFocusListener = this.props.navigation.addListener(
      'willFocus',
      this.setStatusBarColorDrawerOpen
    );

    this.willBlurListener = this.props.navigation.addListener(
      'willBlur',
      this.setStatusBarColorDrawerClose
    );
  }

  setStatusBarColorDrawerOpen = () => {
    console.log(' setting StatusBar to GRAY! ');
    if (Platform.OS !== 'ios') StatusBar.setBackgroundColor('rgb(242,242,242)');
  };

  setStatusBarColorDrawerClose = () => {
    console.log(' setting StatusBar to WHITE! ');
    if (Platform.OS !== 'ios') StatusBar.setBackgroundColor('#FFF');
  };

  componentWillUnmount() {
    this.willFocusListener.remove();
    this.willBlurListener.remove();
  }

Есть еще идеи?

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