我是本机反应的新手,我正在尝试使用堆栈导航创建一个应用程序。这就是我在App.js上拥有的东西
import React from "react";
import { View, Text } from "react-native";
// Import React Navigation
import { createStackNavigator, createAppContainer } from 'react-navigation'
// Import the screens
import Main from './components/Main';
import Chat from './components/Chat';
// Create the navigator
const navigator = createStackNavigator({
Main: { screen: Main },
Chat: { screen: Chat },
});
const App = createAppContainer(navigator)
export default navigator
这也是我遇到的错误
Invariant Violation: The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html
This error is located at:
in Navigator (at createKeyboardAwareNavigator.js:12)
in KeyboardAwareNavigator (at registerRootComponent.js:17)
in RootErrorBoundary (at registerRootComponent.js:16)
in ExpoRootComponent (at renderApplication.js:34)
in RCTView (at View.js:44)
in RCTView (at View.js:44)
in AppContainer (at renderApplication.js:33)
- node_modules/@react-navigation/core/src/navigators/createNavigator.js:19:8 in getDerivedStateFromProps
- node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:7663:46 in applyDerivedStateFromProps
- ... 20 more stack frames from framework internals
我显然做错了,请协助
答案 0 :(得分:3)
在official documentation的React Navigation上
注意:在v2和更早版本中,React Navigation中的容器由create * Navigator函数自动提供。从v3开始,您需要直接使用容器。在v3中,我们还将createNavigationContainer重命名为createAppContainer。
这意味着,现在您必须显式使用在代码中完成的容器。
但是您仍在使用(导出)navigator
,而不是App
。
因此,将最后一行更改为
export default App
答案 1 :(得分:0)
请遵循以下步骤:
立即运行项目。