title: BackAndroid/BackHandler Event Listeners are not Triggered when set in a Modal's Child Component
body: <p>I am unable to set event listeners using the react-native <strong>BackHandler</strong> in a component that is placed inside a modal. I suspect that this happens because the modal is listening to the method that is passed on the <strong>onRequestClose</strong> prop.</p>
  
  <p>Well, I am not sure if this is a bug or a feature request but I would suggest that you allowed us to pass a certain value (e.g null) to the <strong>onRequestClose</strong> prop as a way of flagging that there might be BackHandler event listeners being set in the Modal's child components, and that these listeners have priority (i.e override the <strong>onRequestClose</strong> of the Modal).</p>
  
  <h2>Environment</h2>
  
  <p>Environment:</p>
  
  <ul>
  <li>OS: macOS High Sierra 10.13.3   </li>
  <li>Node: 9.2.0   </li>
  <li>Yarn: 0.24.6    </li>
  <li>npm: 5.6.0</li>
  <li>Watchman: 4.7.0</li>
  <li>Xcode: Xcode 9.2 Build version 9C40b</li>
  <li>Android Studio: 3.0 AI-171.4408382</li>
  </ul>
  
  <p>Packages: (wanted => installed)</p>
  
  <ul>
  <li>react: 16.2.0 => 16.2.0</li>
  <li><p>react-native: 0.53.0</p>
  
  <p>=> 0.53.0</p></li>
  </ul>
  
  <h2>Steps to Reproduce</h2>
  
  <p>Below there is the instructions  inside the child component:</p>
  
  <pre><code>class ChildComponent extends Component {
      componentDidMount () {
          BackHandler.addEventListener('hardwareBackPress', this._onBackPress)
      }
  
      componentWillUnmount () {
          BackHandler.removeEventListener('hardwareBackPress', this._onBackPress)
      }
  
      _onBackPress = () =&gt; {
          console.log('Event was triggered')
  
          return true
      }
  
      render () {
          return (
              &lt;Text&gt;{'Some Text'}&lt;/Text&gt;
          )
      }
  }
  
  export default ChildComponent
  </code></pre>
  
  <p>The component that has the Modal (parent) has the following instructions:</p>
  
  <pre><code>class ParentComponentWithModal extends Component {
      constructor (props) {
          super(props)
          this.state = {
              modalVisible: true
          }
      }
  
      render () {
          const { modalVisible } = this.state
          return (
              &lt;View&gt;
                  &lt;Modal
                      visible={modalVisible}
                      onRequestClose={() =&gt; console.log('onRequestClose')}
              &gt;
                  &lt;ChildComponent /&gt;
              &lt;/Modal&gt;
            &lt;/View&gt;
          )
      }
  }
  
  export default ParentComponentWithModal
  </code></pre>
  
  <h2>Expected Behavior</h2>
  
  <p>The <strong>_onBackPress</strong> method added to hardwareBackPressed listener should be executed when the back button is pressed.</p>
  
  <h2>Actual Behavior</h2>
  
  <p>When the back button is pressed, the function defined on the <strong>onRequestClose</strong> prop is triggered. Even if no function is defined on the <strong>onRequestClose</strong> prop, the methods attached to the event listeners defined in the modal's children are not executed.</p>