native.createnavigatorファクトリは関数ではありません


10

プロジェクトでDrawerナビゲーションを設計します。

次のコマンドでインストールしました:

npm install @react-navigation/drawer

次にそれをインポートしました App.js

import { createDrawerNavigator } from '@react-navigation/drawer';
import { NavigationContainer } from '@react-navigation/native';

これは私のpackage.jsonコンテンツです:

"@react-native-community/masked-view": "^0.1.6",
"@react-navigation/drawer": "^5.0.0",
"react": "16.9.0",
"react-native": "0.61.5",
"react-native-gesture-handler": "^1.5.6",
"react-native-reanimated": "^1.7.0",
"react-native-screens": "^2.0.0-beta.1",
"react-native-view-shot": "^3.0.2",
"react-navigation": "^4.1.1",
"react-navigation-stack": "^2.1.0",

これは私のApp.jsコンテンツです:

const App = () => {
  const Drawer = createDrawerNavigator();
  return (
    <View style={styles.container}>
      <NavigationContainer>
        <Drawer.Navigator initialRouteName="login">
          <Drawer.Screen name="login" component={Login} />
          <Drawer.Screen name="second" component={SecondPage} />
        </Drawer.Navigator>
      </NavigationContainer>
    </View>
  )
};

私は、私はすでに作成したことを言うべきLoginSecondPageコンポーネントと名前のファイルでそれらを宣言しましたroot.js

import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import { Login, Header, SecondPage, Footer, ThirdPage } from './components/index';

const AppNavigator = createStackNavigator({
  login: { screen: Login },
  header: { screen: Header },
  second: { screen: SecondPage },
  footer: { screen: Footer },
  third: { screen: ThirdPage }
}, {
  initialRouteName: 'login',
  headerMode: 'none',
  mode: 'modal',
}, {});

export default createAppContainer(AppNavigator);

しかし、エラーが発生します(次の画面)。

どうすれば修正できますか?

ここに画像の説明を入力してください

index.js

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';

1
私は同じ問題を抱えていました、再実行しました-npm install @ react-navigation / nativeが問題を解決しました
Liron Sher

私は本当にそれを感謝します、問題は解決されました、引き出しスタイルを変更する方法を知っていますか?backgroundeColorなどを意味します...
roz333

おかげで@LironSherの更新@ react-navigation / nativeがうまくいきました
Hassan jan

回答:


0

あなたが今何をしようとしているのか理解できません。引き出しナビを追加したいと思います。

問題は、1つのコンテナーを使用する必要があるが、2つあり、createStackNavigatorには2つのパラメーターがあるが、3つあることです。

createStackNavigator(RouteConfigs、StackNavigatorConfig);

ナビゲーターの構造は次のようになっていると思います。

Drawers.js

export default const Drawers = () => {
  const Drawer = createDrawerNavigator();
  return (
        <Drawer.Navigator initialRouteName="login">
          <Drawer.Screen name="login" component={Login} />
          <Drawer.Screen name="second" component={SecondPage} />
        </Drawer.Navigator>
  )
};

App.js

import Drawers from "./Drawers"
...

const AppNavigator = createStackNavigator({
  login: { screen: Drawers },
  header: { screen: Header },
  second: { screen: SecondPage },
  footer: { screen: Footer },
  third: { screen: ThirdPage }
}, {
  initialRouteName: 'login',
  headerMode: 'none',
  mode: 'modal',
});

export default createAppContainer(AppNavigator)

index.js

import Login from './login';
import Header from './header';
import SecondPage from './secondpage';
import Footer from './footer';
import ThirdPage from './thirdpage';

export { Login, Header, SecondPage, Footer, ThirdPage}

または

この問題は、バージョンとの互換性の問題である可能性があります。 React-NavigationおよびStackNavigatorバージョンは最新でなければなりません。


私は今あなたの解決策を試しました、残念ながらそれはうまく
いき

@ roz333同じエラーが発生しますか?
香港の開発者

はい、まったく同じエラー
roz333

@ roz333 index.jsファイルを見せていただけますか?
香港の開発者

確かにこれはindex.jsの内容です: `` `export * from './login'; './header'からエクスポート* './secondpage'からエクスポート* './footer'からエクスポート* './thirdpage'からエクスポート* `` `
roz333

14

プロジェクトでは、React Navigation 4とReact Navigation 5の両方を組み合わせています。無効です。

ナビゲーション4パッケージの反応:react-navigationreact-navigation-stackreact-navigation-drawerなど

ナビ5のパッケージを反応させる:@react-navigation/native@react-navigation/stack@react-navigation/drawerなど

公式ドキュメントに従い、パッケージの正しいバージョンと構文を使用してくださいhttps://reactnavigation.org/docs/en/getting-started.html

基本的にコードを削除して、次のroot.jsようなスタックナビゲーターを作成しますhttps://reactnavigation.org/docs/en/stack-navigator.html


0

インストールしてみてください:糸追加反応ナビゲーションスタック

と依存関係:糸追加反応ネイティブジェスチャーハンドラ反応ネイティブ生き返った反応ネイティブスクリーン反応ネイティブセーフエリアコンテキスト@反応ネイティブコミュニティ/マスクされたビュー

ルート内:import {createStackNavigator} from 'react-navigation-stack';


-1

Index.jsコンテンツ

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.