错误:无法解析模块“ react-native-gesture-handler”

时间:2019-03-26 13:51:12

标签: react-native

我尝试在react-native中使用Navigation。 我添加了: npm install --save react-navigation

但是它给了我这样的错误:

错误:捆绑失败:错误:无法从react-native-gesture-handler解析模块C:\reactnative\proejectName\node_modules\@react-navigation\native\src\Scrollables.js:急速模块图中不存在模块react-native-gesture-handler

这是索引:

import { AppRegistry } from 'react-native';
import App from './App';
import { name as appName } from './app.json';

AppRegistry.registerComponent(appName, () => App);

这是app.js

import React from 'react';
import { createStackNavigator, createAppContainer, } from 'react-navigation';
import First from './src/Components/First';
import DescriptionPage from './src/Components/DescriptionPage';


const Navigation = createStackNavigator({
  First: {
    screen: First,
  },
  DescriptionPage: {
    screen: DescriptionPage,
  },
});

const App = createAppContainer(Navigation);

export default App;

这是package.json:

{
  "name": "ProjectName",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.8.3",
    "react-native": "0.59.1",
    "react-native-sqlite-storage": "^3.3.10",
    "react-navigation": "^3.5.1"
  },
  "devDependencies": {
    "@babel/core": "7.4.0",
    "@babel/runtime": "7.4.2",
    "babel-jest": "24.5.0",
    "eslint-config-rallycoding": "^3.2.0",
    "jest": "24.5.0",
    "metro-react-native-babel-preset": "0.53.1",
    "react-test-renderer": "16.8.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

17 个答案:

答案 0 :(得分:40)

您还需要在项目依赖项列表中分别安装 constructor (args = {}) { let instance = plainToClass(CLASSTYPE, args) for (let key in Object.keys(instance)) { this[key] = instance [key] } } 并将其也与本机链接。请参阅此doc

希望这会有所帮助。祝您编码愉快!

答案 1 :(得分:2)

对于这里的新来者:

  1. 如果您正在使用expo,则只需运行以下命令即可为您的react native版本安装适当的版本
react-native-gesture-handler
  1. 请注意,createStackNavigator已移至react-navigation-stack,因此正确的导入变为:
import { createStackNavigator } from 'react-navigation-stack';
import {createAppContainer } from 'react-navigation';

答案 2 :(得分:1)

在您的本地反应项目中找不到手势处理程序。运行此命令

npm install react-native-gesture-handler

快乐编码

答案 3 :(得分:1)

使用以下命令进行安装

yarn add react-native-gesture-handler

,然后在特定项目中链接库

react-native link react-native-gesture-handler

答案 4 :(得分:1)

在我的情况下,react-native-gesture-handler已安装,但我将其卸载并重新安装。

1:卸载

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

2:安装

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

3:链接

react-native link react-native-gesture-handler

4:重新启动npm

npm restart 

npm start

答案 5 :(得分:1)

如果您在安装依赖项之前启动了应用程序,则可能需要在手机或模拟器上重新安装应用程序。我就是这种情况。

安装依赖项 as shown in the docs 后,我需要:

  1. 从模拟器中删除应用程序
  2. 通过终端再次运行yarn android(或npm run android

它解决了我的问题。

注意:使用 Expo

答案 6 :(得分:0)

yarn add react-native-gesture-handler

或者如果您愿意,也可以使用 npm:

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

来自https://docs.swmansion.com/react-native-gesture-handler/docs/的参考

答案 7 :(得分:0)

我通过以下方式解决了这个问题:

  1. 正在运行 npx react-native link react-native-gesture-handler

  2. 从设备上卸载调试应用程序

  3. 运行npx react-native run-android

答案 8 :(得分:0)

我有时会遇到这个问题,即使在安装 npm 包后它仍然会抛出错误。您可以尝试将以下行添加到应用程序的顶级组件/文件中,例如index.js

import "react-native-gesture-handler"

答案 9 :(得分:0)

工作正常

"react-native-gesture-handler": "^1.8.0",

用这个代替

"react-native-gesture-handler": "1.8.0",

删除 ^

答案 10 :(得分:0)

使用以下命令进行安装

yarn add react-native-gesture-handler

对于React Native版本

react-native link react-native-gesture-handler

答案 11 :(得分:0)

如果要升级到SDK 39。

运行此命令:

expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view

谢谢。

答案 12 :(得分:0)

在我的情况下,我遇到了同样的问题,react-native-gesture-handler本身的安装失败。我正在使用本机版本0.61.5。由于某些原因,我的项目未安装最新版本的react-native-gesture-handler。我通过安装特定版本的react-native-gesture-handler解决了该错误。

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

希望这会有所帮助。

答案 13 :(得分:0)

如果您正在使用expo,则必须通过expo命令进行安装:

expo install react-native-gesture-handler

答案 14 :(得分:0)

有同样的问题。解决方法:

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

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

答案 15 :(得分:0)

如果您正在运行mac,请执行以下操作:

  1. 删除node_modulespackage-lock.json
  2. npm install
  3. npm install --save react-navigation
  4. npm install --save react-native-gesture-handler
  5. cd ios
  6. pod install

然后再次运行

答案 16 :(得分:0)

确保您的反应导航版本为3.11.0。

enter image description here

然后使用npm install react-native-gesture-handler命令