我的问题与this one相同,但是如果使用这样的商店提供商,我会遇到困难:
const AppNavigator = createSwitchNavigator(
{
Loading: MainLoadingScreen,
App: MainNavigator,
Auth: AuthStack,
Signup: SignupStack
},
{
initialRouteName: 'Loading',
}
);
const App = () => {
return (
<Provider store={store}>
<View style={styles.container}>
<AppNavigator />
</View>
</Provider>
);
};
export default App;
我收到此错误: 永久违反:此导航器缺少导航道具。在react-navigation 3中,您必须直接设置应用程序容器。更多信息:https://reactnavigation.org/docs/en/app-containers.html
此错误位于:
in Navigator (at App.js:114)
in RCTView (at View.js:45)
in View (at App.js:113)
in Provider (at App.js:112)
in App (at withExpoRoot.js:20)
in RootErrorBoundary (at withExpoRoot.js:19)
in ExpoRootComponent (at renderApplication.js:35)
in RCTView (at View.js:45)
in View (at AppContainer.js:98)
in RCTView (at View.js:45)
in View (at AppContainer.js:115)
in AppContainer (at renderApplication.js:34)
- node_modules\@react-navigation\core\lib\module\navigators\createNavigator.js:1:1637 in getDerivedStateFromProps
- node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:6896:46 in applyDerivedStateFromProps
- ... 20 more stack frames from framework internals
如何转换代码,以便可以使用此处显示的格式? :
const App = createAppContainer(AppNavigator)
答案 0 :(得分:1)
用createAppContainer
包装您的开关导航器:
const MainSwitch = createSwitchNavigator(
{
Loading: MainLoadingScreen,
App: MainNavigator,
Auth: AuthStack,
Signup: SignupStack
},
{
initialRouteName: 'Loading',
}
);
const AppNavigator = createAppContainer(MainSwitch)
export default App = () => {
return (
<Provider store={store}>
<View style={styles.container}>
<AppNavigator />
</View>
</Provider>
);
};
答案 1 :(得分:0)
使其具有功能并将其分配给Const
的值。
const App = function Appfunc() {
return (
<Provider store={store}>
<View style={styles.container}>
<AppNavigator />
</View>
</Provider>
);
}
const AppContainer = createAppContainer(AppNavigator)
export default AppContainer