我目前正在尝试深入链接到位于选项卡导航器中的堆栈导航器。但是它不能正常工作,它只是将我导航到堆栈中的第一个屏幕。我尝试了多种不同的解决方案,但没有任何效果。
这是我的配置和导航设置,感谢您的帮助。
const linking = {
prefixes: ['https://gami.com', 'gami://'],
config: {
screens: {
Games: {
screens:{
Game:'game/:id'
}
}
}
}
}
const gamesStack = ({navigation}) => {
return (
<Games.Navigator
screenOptions={{
cardStyle: {backgroundColor: colors.BACKGROUND},
headerShown: true,
headerBackTitleVisible:false,
headerTintColor:'black'
}}>
<Games.Screen name="Games" component={GamesPage} />
<Games.Screen
options={{
title: '',
headerStyle: {
backgroundColor: colors.BACKGROUND,
},
}}
name="FindGames"
component={FindGames}
/>
<Games.Screen
options={{
title: '',
headerStyle: {
backgroundColor: colors.BACKGROUND,
},
}}
name="Game"
component={Game}
/>
<Games.Screen
options={{
title: '',
headerStyle: {
backgroundColor: colors.BACKGROUND,
},
}}
name="Profile"
component={Profile}
/>
<Games.Screen
options={{
title: '',
headerStyle: {
backgroundColor: colors.BACKGROUND,
},
}}
name="Group"
component={Group}
/>
<Games.Screen
options={{
title: '',
headerStyle: {
backgroundColor: colors.BACKGROUND,
},
}}
name="MessageThread"
component={MessageThread}
/>
</Games.Navigator>
);
};
export default function Navigation() {
const {user} = useContext(AuthContext);
return (
<NavigationContainer linking={linking}>
{!user ? (
<LoginStack.Navigator>
<LoginStack.Screen
name="Onboarding"
component={OnboardingScreen}
options={{
animationEnabled: false,
header: () => null
}}
/>
<LoginStack.Screen
name="Login"
component={Login}
options={{headerLeft: () => null}}
/>
<LoginStack.Screen name="EmailPassword" component={Emailpassword} />
<LoginStack.Screen name="Name" component={Name} />
<LoginStack.Screen
name="InstagramHandle"
component={InstagramHandle}
/>
<LoginStack.Screen name="Age" component={Age} />
<LoginStack.Screen name="Location" component={Location} />
<LoginStack.Screen
name="PreferredSports"
component={PreferredSports}
/>
</LoginStack.Navigator>
) : (
<Tab.Navigator
tabBarOptions={{
showLabel: false,
safeAreaInsets:{
left:10,
right:10
}
}}
>
<Tab.Screen
name="Games"
component={gamesStack}
options={{
tabBarIcon: ({focused}) => <MailIcon focused={focused} />,
}}
/>
<Tab.Screen
name="Groups"
component={groupsStack}
options={{
tabBarIcon: ({focused}) => (
<GroupIcon size="large" focused={focused} />
),
}}
/>
<Tab.Screen
name="People"
component={peopleStack}
options={{
tabBarIcon: ({focused}) => <ProfileIcon focused={focused} />,
}}
/>
<Tab.Screen
name="Inbox"
component={inboxStack}
options={{
tabBarIcon: ({focused}) => (
<MailIcon size="small" focused={focused} />
),
}}
/>
</Tab.Navigator>
)}
</NavigationContainer>
);
}