factory native.createnavigator não é uma função

10

Vou projetar uma navegação de gaveta no meu projeto.

Eu instalei isso por este comando:

npm install @react-navigation/drawer

Então importou isso para App.js

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

Este é o meu package.jsonconteúdo:

"@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",

Este é o meu App.jsconteúdo:

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>
  )
};

Devo dizer que já criei Logine SecondPagecomponentes e os declarei em um arquivo chamadoroot.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);

Mas estou recebendo um erro (tela a seguir).

Como posso consertar isso?

insira a descrição da imagem aqui

index.js

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
roz333
fonte
11
Eu tive o mesmo problema, execute novamente - o npm install @ react-navigation / native resolveu o problema
Liron Sher
? Eu realmente aprecio isso, Issue foi resolvido, Você sabe como mudar o estilo da gaveta Quero dizer backgroundeColor e etc ...
roz333
obrigado @LironSher atualização @ react-navigation / native trabalhou para mim
Hassan

Respostas:

0

Não entendo o que você está tentando fazer agora. Eu acho que você deseja adicionar uma gaveta Navigator.

Seu problema é que você precisa usar um contêiner, mas você tem dois, e createStackNavigator possui dois parâmetros, mas você possui três.

createStackNavigator (RouteConfigs, StackNavigatorConfig);

Eu acho que sua estrutura de navegador deve ser a seguinte.

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}

OU

Esse problema pode ser um problema de compatibilidade com a versão. React-Navigatione as StackNavigatorversões devem estar atualizadas.

desenvolvedor hong
fonte
Eu tentei sua solução agora, infelizmente não funcionou
roz333 6/02
@ roz333 O mesmo erro ocorre?
hong developer
sim exatamente o mesmo erro
roz333 6/02
@ roz333 Você pode me mostrar o arquivo index.js?
hong developer
Certifique-se de que este seja o conteúdo index.js: `` `export * from './login'; exportar * de './header'; exportar * de './secondpage'; exportar * de './footer'; exportar * de './thirdpage'; ``
roz333 6/02
15

Você está combinando o React Navigation 4 e o React Navigation 5 no seu projeto. Não é válido.

Reagir Navigation 4 pacotes: react-navigation, react-navigation-stack, react-navigation-draweretc.

Reagir Navigation 5 pacotes: @react-navigation/native, @react-navigation/stack, @react-navigation/draweretc.

Siga os documentos oficiais e use a versão e sintaxe corretas dos pacotes https://reactnavigation.org/docs/en/getting-started.html

Basicamente, remova seu código root.jse crie um navegador de pilha como aqui https://reactnavigation.org/docs/en/stack-navigator.html

satya164
fonte
0

tente instalar: yarn add react-navigation-stack

e dependências: yarn add react-native-gesto-manipulador react-native-reanimated react-native-screens reage-nativo-área-segura-contexto-contexto @ react-native-community / masked-view

em suas rotas: importe {createStackNavigator} de 'react-navigation-stack';

Gabriel Scalici
fonte
-1

Conteúdo Index.js

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