所以我有以下结构:
public static class MyClass
{
public struct MyStruct
{
public Rectangle MyRectangle {get; set;}
public Button MyButton {get; set;}
public void MyVoid()
{
MyRectangle = new Rectangle();
MyRectangle.Width = 300;
MyRectangle.Height = 100;
MyGrid.Children.Add(MyRectangle);
MyButton = new Button();
MyButton.Widht = 200;
MyButton.Height = 200;
MyButton.Click += (a, e) =>
{
MyRectangle.Fill = Brushes.Red;
}
MyGrid.Children.Add(MyButton);
}
}
}
现在,要从“文章”屏幕转到“个人档案”屏幕,我需要先进入Tabs Navigator,然后从那里进入“个人档案”,所以我要执行以下操作:
<BottomTab.Navigator>
<BottomTab.Screen name="Feed" component={FeedScreen} />
<BottomTab.Screen name="Profile" component={ProfileScreen} />
</BottomTab.Navigator>
<Stack.Navigator>
<Stack.Screen name="Tabs" component={BottomTabsNavigator} />
<Stack.Screen name="Article" component={ArticleScreen} />
</Stack.Navigator>
一切正常。我现在遇到的唯一问题是,当我从那里按下(配置文件屏幕)时,我希望它可以带我回到文章屏幕,但实际上,它带我进入了Tabs Navigator到Feed屏幕。 知道如何达到预期的结果吗?
我现在正在做的是,我希望在Profile Screen上有一个名为backRoute的路由参数,该参数是可选的,如果已发送,则按回去时会转到该路由,否则会执行goBack()。这听起来不像是一种干净的方法,而且绝对不能扩展
答案 0 :(得分:0)
您可以尝试在个人资料屏幕中覆盖后退按钮,然后根据调用它的屏幕确定他的行为: 像这样:
<BottomTab.Screen
name="Profile"
component={ProfileScreen}
headerRight: () => (
<Button
onPress={() =>
if(lastScreen ==='test1'){
//navigate to screen 1
}else{
//navigate to screen 2 }}
/>)
),/>
要确定lastScreen
,请使用导航参数:
这是我在v5上使用react-navigation v4的方式 测试了