javascript - React native 监听所有事件

标签 javascript mobile react-native event-listener

我正在我的应用程序中创建空闲计时器,我想在每次点击、滚动等时重置计时器。在每个 onPress 事件上调用我的 resetTimer() 函数似乎是胡说八道。在网络中,我会做事件监听器,如:$(document).mousemove(), $(document).mousedown(), $(document).scroll ()

关于拥有一些可以在 React native 中的任何触摸事件上调用 resetTimer() 的顶级事件监听器有什么建议吗?

最佳答案

经过一天的调查 rect-native 代码后,我发现了 fbjs 包含 TouchEventUtils(facebook 在他们的 react native 测试中使用它),它允许使用不同的触摸事件状态函数(onTouchMove(event) onTouchStart(事件), onTouchEnd(事件)).

所以我做了什么:

npm install fbjs --save

并且只需将 onTouchStart 添加到包装我的路由的顶级根组件,因此我覆盖了所有屏幕,因为我在所有屏幕/ View 包装器上使用它。

所以我的代码看起来像这样:

/* rest of my imports */
import TouchEventUtils from 'fbjs/lib/TouchEventUtils';

class Root extends Component {

    onTouchStart(){
        //my code to properly reset session timer
    }

    render() {
        return (
            <View
                onTouchStart={this.onTouchStart}
            >
                {/*My routes*/}
            </View>
        )
    }
}

就是这样,这就是访问顶级事件监听器并对每个事件执行某些操作的解决方案。我没有深入挖掘(因为这对我的情况来说已经足够了),所以我不确定它得到了什么对象以及它是否可以帮助识别任何进一步的属性(即记录点击的元素)。

关于javascript - React native 监听所有事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38694365/

相关文章:

javascript - 您好,我想让 4 个对象循环从左到右移动,但我的代码不起作用

javascript - 如何使用javascript删除子div

ios - MobileVLCKit 播放器在 iOS 11 上显示黑屏

javascript - 未捕获的语法错误 "await import(...)"

javascript - JSON 显示头和子列表作为输出

exception - 有没有办法在 Java ME 中打印堆栈跟踪到屏幕?

javascript - 分辨率相关的按钮/元素 - howto?

react-native - 升级到 React Native 0.37 后无法在 iOS 设备上运行应用程序

React-Native 0.57.5 React Navigation 3 不工作

javascript - react native : Can't import and use external packages