我尝试在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"
}
}
答案 0 :(得分:40)
您还需要在项目依赖项列表中分别安装 constructor (args = {}) {
let instance = plainToClass(CLASSTYPE, args)
for (let key in Object.keys(instance)) {
this[key] = instance [key]
}
}
并将其也与本机链接。请参阅此doc。
希望这会有所帮助。祝您编码愉快!
答案 1 :(得分:2)
对于这里的新来者:
react-native-gesture-handler
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 后,我需要:
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)
我通过以下方式解决了这个问题:
正在运行 npx react-native link react-native-gesture-handler
从设备上卸载调试应用程序
运行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,请执行以下操作:
node_modules
和package-lock.json
npm install
npm install --save react-navigation
npm install --save react-native-gesture-handler
cd ios
pod install
然后再次运行
答案 16 :(得分:0)