null不是对象(评估'rngesturehandlermodule.direction')

时间:2019-03-25 18:02:48

标签: react-native react-navigation

在下载"react-native-gesture-handler" dependencies: "^ 1.1.0""react-navigation": "^ 3.5.1"开始出现以下消息错误之后,我正在创建一个具有react-native的登录系统:

  

null不是对象(正在评估“ rngesturehandlermodule.direction”)

我试图删除该项目并重新进行工程,删除并重新安装node_modules文件夹,然后重新安装依赖项,但是没有任何效果。

15 个答案:

答案 0 :(得分:7)

  1. 在终端上用metro bundler停止Ctrl+C
  2. 再次运行Metro bundler:npx react-native start
  3. 再次运行构建命令npx react-native run-android

构建过程可能需要几分钟。

答案 1 :(得分:3)

我有同样的问题。然后,我一步一步安装了react-navigationreact-native-gesture-handler,如下所示:

步骤:

  1. 删除node_modulespackage-lock.json

  2. npm install

  3. npm install --save react-navigation

  4. npm install --save react-native-gesture-handler

  5. react-native link

您可以找到原始答案here

答案 2 :(得分:2)

我在Android上遇到了这个问题。

我所做的只是:

  1. cd android
  2. 清洁干净
  3. 封闭式地铁捆扎机
  4. 本机运行android

解决了我的问题

答案 3 :(得分:1)

对于android

1-> cd android /

2-> ./gradlew clean

3-> cd ../

4->立即运行项目

我不知道这是确切的答案吗? 但这对我有用。

答案 4 :(得分:1)

我从react-native v0.59.9在ios上遇到了相同的错误。 以下解决方案对我有效。 ?

  1. npm我反应本地手势处理程序
  2. 本机链接react-native-gesture-handler
  3. cd ios && pod安装&& cd ..
  4. react-native run-ios

?提示:来自v0.60.0

的本地反应支持自动链接

答案 5 :(得分:1)

我遇到了这个问题,我使用npm而不是yarn解决了它。

答案 6 :(得分:1)

每次通过npm安装新的依赖项时,都需要重新运行应用程序。 关闭应用程序,然后运行npx react-native run-android

答案 7 :(得分:1)

我所做的只是:

  1. 重新启动Metro服务器:ctrl + c,然后启动yarn
  2. 本机运行Android // basically reinstalling the project after installing react-navigation

答案 8 :(得分:0)

我有相同的错误,但是它通过为导航文件创建名称为“ MainNavigator.js”的单独文件来解决

import { createStackNavigator, createAppContainer } from 'react-navigation'; 
import HomeScreen from '../screen/Home';
import DetailsScreen from '../screen/Details';

    const RootStack = createStackNavigator({
        Home: HomeScreen,
        Details: DetailsScreen,
    }, {
        initialRouteName: 'Home',
    }
    );


const AppContainer = createAppContainer(RootStack);

export default AppContainer;

并通过以下代码在App.js文件中使用

import React from 'react';
import RootNavigator from './js/navigation/MainNavigator';
class App extends React.Component {
    render() {
        return <RootNavigator />
    }
}
export default App;

答案 9 :(得分:0)

我遇到了这个问题,只是重新启动了Metro Bundler和iOS模拟器。当我重新启动它们时,它似乎可以正常工作。

答案 10 :(得分:0)

请首先在终端中运行此命令:

npm uninstall react-native-gesture-handler --save 

第二个:

npm install react-native-gesture-handler --save

第三:

react-native link react-native-gesture-handler

第四:

npm start

最后,这是工作。

答案 11 :(得分:0)

如果您使用的是android,请尝试以下解决方案: 转到:/android/settings.gradle有字符串: project(':react-native-gesture-handler')。projectDir =新文件(rootProject.projectDir,'.. \ node_modules \ react-native-gesture-handler \ android')

tro用更改它: project(':react-native-gesture-handler')。projectDir =新文件(rootProject.projectDir,'.. \ node_modules \ react-native-gesture-handler \ android') 来源:#494(评论)

答案 12 :(得分:0)

npx pod-install 应该为您解决问题。

答案 13 :(得分:0)

如果您使用的是 react-native 版本 0.59.10,请尝试针对 ios 执行以下步骤:

  1. package.json 中的更改“react-native-gesture-handler”:“1.1.1”
  2. npx react-native link --platforms ios
  3. 打开 Xcode 并在它显示库的顶部 > iphone 或您构建的任何设备,将库更改为指向 RNGestureHandler 并单独运行并确保构建正常。然后切换回您的项目并运行/构建它。
  4. 可能不相关,但我还必须手动构建 RN 屏幕。

答案 14 :(得分:-1)

cd到项目的ios子目录中,然后运行pod install