Я создаю собственный мастер реагирования и хочу объединить статический маршрут и динамические маршруты мастера.
В настоящее время я использую навигацию реагирования, и основная проблема заключается в том, что у меня есть функция generateNavigator
это создает динамические маршруты на основе реквизита, переданного компоненту Route.js
, где существует функция. Я попытался переместить функцию в AppNavigator
, где существуют статические маршруты, но навигатор должен быть функцией. Я запускаю приложение expo
Route.js
generateNavigator = () => {
const { steps, title } = this.props;
const navigationRoutes = {};
steps.forEach((step, index) => {
const routeOptions = { screen: step.component };
navigationRoutes[step.routeName] = routeOptions;
});
const navigationOptions = {
headerStyle: {
backgroundColor: '#ffffff',
paddingHorizontal: 5,
},
headerTintColor: '#111111',
headerTitle: title,
};
return createAppContainer(createStackNavigator(navigationRoutes, { navigationOptions }));
}
AppNavigator.js
const MainStack = createStackNavigator(
{
Main: {
screen: {
MainTabNavigator,
},
},
...ModalStack
},
{
mode: 'modal',
headerMode: 'none',
}
);
export default createAppContainer(
createSwitchNavigator({
AuthLoading: AuthLoading,
Main: MainStack,
Auth: AuthStack,
}, {
initialRouteName: 'AuthLoading',
})
);
Я ожидаю, что приложение будет работать без предупреждения, но вместо этого яя получаю предупреждение «Вы должны явно отображать только один навигатор в вашем приложении». Как было сказано ранее, я попытался переместить generateNavigator()
на AppNavigator
, чтобы решить проблему, но безуспешно.