带有 Expo 的 React-Native Shake 事件检测器

Posted

技术标签:

【中文标题】带有 Expo 的 React-Native Shake 事件检测器【英文标题】:React-Native Shake Event Detector With Expo 【发布时间】:2018-11-11 18:38:20 【问题描述】:

我在 ios 手机上使用 Expo v2.3.8Expo client v2.9.0

我正在尝试测试 Shake addEventListener 事件,但最终总是打开 Expo 开发者菜单。所以我在 Expo 中关闭了摇动选项,但这次我摇动时,手机旧的 Expo 开发者菜单打开了。

这是我的代码:

import RNShake from 'react-native-shake';

export default class Starting extends Component 
    static navigationOptions = 
      title: 'MyApp',
    ;

    componentWillMount() 
      RNShake.addEventListener('shake', () => 
        this.props.navigation.push('Register');
      );
    

    componentWillUnmount() 
      RNShake.removeEventListener('shake');
    
   .
   . 
   .

我尝试打开生产模式。它没有用。 如何使用 Expo 测试抖动事件? React Native 抖动检测器 - https://www.npmjs.com/package/react-native-shake

【问题讨论】:

【参考方案1】:

react-native-shake 库需要链接本机代码,因此如果不先从 Expo 弹出到 Expokit,它将无法工作,如下所述:https://docs.expo.io/versions/latest/expokit/eject/

从您的项目目录中,运行expo eject。这将下载所需的依赖项并在 ios 和 android 目录下构建原生项目。然后按照库安装说明运行react-native link react-native-shake

【讨论】:

您能否提供解决方案/简短说明以及链接? 评论中不适合我,请编辑答案:)

以上是关于带有 Expo 的 React-Native Shake 事件检测器的主要内容,如果未能解决你的问题,请参考以下文章

带有 Expo 的 React-Native Shake 事件检测器

不使用 react-native 的 Expo 分支

Expo react-native 将无法连接到 socketio(Android 和 iOS)

带有 React Native 的 Expo PDF 查看器

开玩笑的带有 expo sqlite 调用的单元测试类

React-native (expo) - 无效类型