私はreact-navigationをReact Nativeプロジェクトにインストールしました。そのスタータープロジェクトにはコードがありません。しかし、プロジェクトの実行中に、このようなエラーに直面しています。
これが私のナビゲーションコードです
import { createStackNavigator } from 'react-navigation';
import Home from './screens/Home';
import WeatherDetail from './screens/WeatherDetail';
const Navigation = createStackNavigator({
Home: { screen: Home },
WeatherDetail: {
screen: WeatherDetail
}
});
export default Navigation;
そして、ここにApp.jsコードがあります
import Navigator from './Router';
export default class App extends Component {
render() {
return (
<View style={styles.container}>
<Navigator />
</View>
);
}
}
App.jsからナビゲータコンポーネントを削除し、Textに置き換えた場合、アプリケーションはエラーなしで実行されます。
npm install
npm install --save react-navigation
npm install --save react-native-gesture-handler
react-native link
まず、node_modules
とpackage-lock.json
を削除して、npm install
を実行します。 React Nativeプロジェクトにreact-navigation
パッケージをインストールした後。 react-native-gesture-handlerをインストールする必要があります。 Expoを使用している場合、ここで何もする必要はありません。これはSDKに含まれています。そうでなければ:
npm install react-native-gesture-handler
最後に、次のようにジェスチャー依存関係をリンクします。
react-native link react-native-gesture-handler
React Navigation document に基づくこの回答。
反応リンクを使用して依存関係をリンクしている場合:
公式ドキュメントから:
React Native> = 0.60を使用している場合、最初にreact-native-gesture-handlerの自動リンクを無効にする必要があります。自動リンクを無効にするには、プロジェクトのルートに次のコンテンツを含むreact-native.config.jsファイルを作成します。
module.exports = {
dependencies: {
'react-native-gesture-handler': {
platforms: {
Android: null,
ios: null,
},
},
},
};
React 0.60を使用している場合は、この公式ドキュメントを省略してください。次の手順に従ってください:
rm react-native.config.js
存在する場合react-native link react-native-gesture-handler
cd ios && pod install && cd ..
react-native run-ios
IosでRN v0.60から同じエラーが表示されます
次は私のために働いた:
cd ios
pod install
私と同じ問題があるので誰かがここに来るかもしれません。
反応ナビゲーションバージョン3.xを使用しているため、このエラーが発生しました。そのバージョンではstackNavigator
はcreateStackNavigator
に変更され、createAppContainer(createStackNavigator)
を使用する必要があります
mr.amiriが言った のように修正しますが、node_moduleを削除しませんimはステップ3-5に従うだけです
コメントは許可されていないので、ここに投稿しています。これは@Amiri Houssemによる答えですが、私はもう1つ追加しています:
remove node_modules and package-lock.json
npm install
npm install --save react-navigation
npm install --save react-native-gesture-handler
react-native link
これらの5つの手順を実行してもエラーが発生する場合は、Android/settings.gradleを確認し、その行を次のように変更します。
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/Android')
上記の回答はどれも私に関係ないので、私は答えています。
import { TouchableOpacity } from 'react-native-gesture-handler'
要素を追加すると、VSCodeがファイルに依存関係として<TouchableOpacity>
を自動的に挿入したため、このエラーが発生しました。
予期しないimportステートメントがある場合に備えて、最後に編集したファイルを1回だけ提供します。
遅いかもしれません。一時的なソリューションは、反応ナビゲーションのバージョンをダウングレードします。
1-反応ナビゲーションとハンドラーのリンク解除とアンインストール
2- add "react-navigation": "^ 2.18.2" package.jsonに
3- node_modulesフォルダーの削除
4- npm i
5-反応ネイティブリンク
これは私にとってもうまくいきました。
1)npm install react-navigation
2)npm install react-native-gesture-handler
3)npm intstall
4)react-native link
アプリをアンインストールする
5)react-native run-Android
コマンドプロンプトで次のコマンドを実行します(管理者として実行)
npm install react-navigation
npm install react-native-gesture-handler
npm intstall
react-native link
アプリケーションを再インストールすると、問題が解決します。
私はこれに苦労しましたが、上記の答えはどれもうまくいきませんでした。ここに私がしなければならなかったことがあります:
ios
フォルダーを完全に削除します。node_modules
フォルダーとpackage-lock.json
を削除します。react-native eject
を実行して、ネイティブコードフォルダーを再作成します。npm install
を実行しますreact-native link
を実行しますnpm run start -- --reset--cache
を実行しますreact-native run-ios
を実行しますIOSでPodfileを使用した構成を使用している場合。次の手順に従ってください:
pod 'RNGestureHandler', :path => '../node_modules/react-native-gesture-handler'
のこの行<react-native-project>/ios/Podfile
をコメントします。<react-native-project>.xcworkspace
を開くRNGestureHandler.xcodeproj
からライブラリにnode_modules/react-native-gesture-handler/ios
を追加します(ライブラリフォルダーを右クリックして[ファイルを追加]を選択します)。libRNGestureHandler.a
を追加します。react-native-gesture-handler
はnode_modules
フォルダーにありますが、パスに追加するか、再度インストールする必要があります。次に、ネイティブコードとリンクします。
1)npm install --save react-native-gesture-handler
success Saved 1 new dependency.
info Direct dependencies
└─ [email protected]
info All dependencies
└─ [email protected]
2)react-native link
rnpm-install info Linking react-native-gesture-handler ios dependency
rnpm-install info Platform 'ios' module react-native-gesture-handler has been
successfully linked
rnpm-install info Linking react-native-gesture-handler Android dependency
rnpm-install info Platform 'Android' module react-native-gesture-handler has
been successfully linked
3)react-native run-Android
またはreact-native run-ios
ネイティブのリアクションバージョンを確認します。バージョン0.60の場合、jetifierを使用してandroidXに移行する必要があります。このリンクの手順に従ってください https://github.com/mikehardy/jetifier
私のために成功した:)
CLIでこれを使用して問題を解決しました
cd iOS
pod install
cd ..
react-native unlink react-native-gesture-handler