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

hak*_*kan 43 react-native

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

但是它给我这样的错误:

错误:捆绑失败:错误:无法解析模块react-native-gesture-handlerC:\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);
Run Code Online (Sandbox Code Playgroud)

这是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;
Run Code Online (Sandbox Code Playgroud)

这是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"
  }
}
Run Code Online (Sandbox Code Playgroud)

Sur*_*iya 88

您还需要react-native-gesture-handler在项目依赖项列表中分别安装,并将其也与本机链接。请参考此文档

希望这可以帮助。编码愉快!

  • 该文档没有提到安装“react-native-gesture-handler” (3认同)
  • @MaykedaRosaHerbst如果您查看`gesture-handler`库,那么您将了解为什么`react-navigation`开发人员会使用它来保持导航转换的顺畅和高效。 (2认同)

I B*_*I B 14

使用以下命令进行安装

yarn add react-native-gesture-handler
Run Code Online (Sandbox Code Playgroud)

然后链接特定项目中的库

react-native link react-native-gesture-handler
Run Code Online (Sandbox Code Playgroud)

  • [`docs`](https://reactnavigation.org/docs/en/getting-started.html#installation) 说仅 React Native v0.59 及以下版本需要链接 (9认同)

Aka*_*mar 9

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

npm install react-native-gesture-handler
Run Code Online (Sandbox Code Playgroud)

快乐编码

  • 补充:```npm i react-native-gesture-handler --save && react-native link`` (2认同)

amd*_*dan 7

出现此错误有两个主要原因。

  • 如果您没有安装react-native-gesture-handler,则安装 npm 或yarn add react-native-gesture-handler.

  • 如果您已经这样做了,那么您需要重建您的应用程序,对于 androidreact-native run-android和 ios 您应该安装 pod,然后再次运行。

    cd ios && pod install --repo-update && cd .. react-native run-ios

您可能需要再次重新启动 Metro react-native start


小智 6

有同样的问题。解决了它:

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

npm install react-native-gesture-handler --save
Run Code Online (Sandbox Code Playgroud)


Rom*_*ado 6

如果您已经安装...

npm install react-native-gesture-handler
Run Code Online (Sandbox Code Playgroud)

在 App.js 代码的第一行添加一个import 'react-native-gesture-handler'(注意必须位于第一行,位于所有代码和任何导入的顶部)

只需卸载在模拟器或任何物理设备上运行的应用程序并再次运行(再次安装)即可工作。


Waq*_*Haq 5

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

1:卸载

npm uninstall react-native-gesture-handler --save
Run Code Online (Sandbox Code Playgroud)

2:安装

npm install react-native-gesture-handler --save
Run Code Online (Sandbox Code Playgroud)

3:链接

react-native link react-native-gesture-handler
Run Code Online (Sandbox Code Playgroud)

4:重启npm

npm restart 
Run Code Online (Sandbox Code Playgroud)

或者

npm start
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您使用 expo,则必须通过 expo 命令安装它:

expo install react-native-gesture-handler
Run Code Online (Sandbox Code Playgroud)