小编Mar*_*ane的帖子

在Modal的子组件中设置BackAndroid / BackHandler事件侦听器不会触发

我无法在模态内放置的组件中使用react-native BackHandler设置事件侦听器。我怀疑这是因为模态正在侦听onRequestClose道具上传递的方法。

好吧,我不确定这是错误还是功能请求,但我建议您允许我们将某个值(例如null)传递给onRequestClose道具,以作为标记可能设置了BackHandler事件侦听器的方式在Modal的子组件中,并且这些侦听器具有优先级(即,覆盖Modal 的onRequestClose)。

环境

环境:

  • 操作系统:macOS High Sierra 10.13.3
  • 节点:9.2.0
  • 纱:0.24.6
  • npm:5.6.0
  • 守望者:4.7.0
  • Xcode:Xcode 9.2 Build版本9C40b
  • Android Studio:3.0 AI-171.4408382

软件包:(需要=>已安装)

  • 反应:16.2.0 => 16.2.0
  • 反应本机:0.53.0

    => 0.53.0

重现步骤

下面是子组件内部的说明:

class ChildComponent extends Component {
    componentDidMount () {
        BackHandler.addEventListener('hardwareBackPress', this._onBackPress)
    }

    componentWillUnmount () {
        BackHandler.removeEventListener('hardwareBackPress', this._onBackPress)
    }

    _onBackPress = () => {
        console.log('Event was triggered')

        return true
    }

    render () {
        return (
            <Text>{'Some Text'}</Text>
        )
    }
}

export default ChildComponent
Run Code Online (Sandbox Code Playgroud)

具有模态(父级)的组件具有以下说明:

class ParentComponentWithModal …
Run Code Online (Sandbox Code Playgroud)

javascript android reactjs react-native

4
推荐指数
1
解决办法
652
查看次数

标签 统计

android ×1

javascript ×1

react-native ×1

reactjs ×1