有两种方法可以进入播放器屏幕。
在TeamStack中,默认设置是“团队主屏幕”,然后是一堆其他屏幕,其中一个是“名册”,其中列出了该团队的所有球员。从那里您可以进入PlayerStack,将您带到播放器主屏幕。
现在,当您进入播放器屏幕时,您可以滑动以返回,这会将您从原先的位置带回去……名册,然后是主队,再到“更多”页面。
到目前为止一切顺利!
这是问题所在...
让我们回到“统计”选项卡,然后单击一个球员,然后进入一个团队,然后进入花名册。现在,如果您单击一个新球员,然后返回,它会直接返回到“统计信息”屏幕,而不是返回到名册,团队主屏幕,原始球员和统计信息。>
以某种方式,因为PlayerStack已经打开,所以当您在“路线2”选项中从“团队花名册”中转到“玩家”时,它将带您回到最初打开的PlayerStack,而不是在堆栈中添加新屏幕。
>这有意义吗?我该怎么做,以便当您沿Route 2到达新玩家时,当您返回时,它会带您以正确的屏幕顺序返回?
const MainStackNavigator = createStackNavigator(
{
MainTabNavigator: MainTabNavigator,
Team: {
screen: TeamStack,
navigationOptions: ({ navigation }) => {
return {
header: null,
}
}
},
Player: {
screen: PlayerStack,
navigationOptions: ({ navigation }) => {
return {
header: null,
}
}
},
)
const MainTabNavigator = createBottomTabNavigator(
...
Stats: {
screen: StatsStack,
navigationOptions: {
tabBarIcon: ({ focused }) => {
return <Icon
name="ios-stats"
iconStyle={{}}
color={focused ? '#000' : '#ccc'}
size={28} />;
},
},
},
More: {
screen: MoreStack,
navigationOptions: {
tabBarIcon: ({ focused }) => {
return <Icon
name="ios-more"
iconStyle={{}}
color={focused ? '#000' : '#ccc'}
size={28} />;
},
},
},
)
答案 0 :(得分:0)
我可以删除此问题,因为我在写完所有内容后才想出了答案,但是答案是在名册页面上,而不是使用Navigation.navigate('Player')
进入播放器屏幕,我不得不使用{{1 }}。
According to the docs,如果该屏幕已经打开,则不会将另一个重复的屏幕添加到堆栈中,它只会返回到打开的屏幕。为了将屏幕强制移到堆栈上,您必须使用push方法。
这将在以上两种情况下都有效。