【发布时间】:2018-12-18 10:09:05
【问题描述】:
实现一个社交网络,我有 Feed 屏幕、一个 Post 屏幕和一个 Compose 屏幕
我需要能够在 Feed 和 Post 页面上来回导航,因此它们在同一个堆栈中。
Compose 屏幕需要作为具有单独导航栏的模型弹出。
目前的实现是这样的:
const MainStack = new StackNavigator({
Feed: { screen: Feed },
Post: { screen: Post },
});
我尝试了两种选择:
将撰写屏幕添加到主导航器 => 没有标题,即使覆盖导航选项:
export const Navigation = StackNavigator(
{
MainStack: { screen: MainStack },
Compose: { screen: Compose, navigationOptions: { headerMode: "screen" } },
},
{ headerMode: "none", mode: "modal" }
);
将撰写屏幕放在一个单独的堆栈中 => 我们得到一个带有后退按钮的标题,但按下它不会返回到主堆栈
const ComposeStack = new StackNavigator({
Compose: { screen: Compose },
});
export const Navigation = StackNavigator(
{
MainStack: { screen: MainStack },
ComposeStack: { screen: ComposeStack },
},
{ headerMode: "none", mode: "modal" }
);
任何帮助将不胜感激!
【问题讨论】:
-
在您的第一个选择中,尝试将 headerMode 设置为
'screen'以便出现标题。如果有,请告诉我! -
感谢将 Navigator 堆栈标题模式更改为“屏幕”的响应创建 2 个导航标题 - 一个用于导航堆栈,一个用于 MainStack - 删除 MainStack 的标题意味着我无法在 A 和 B 之间导航
-
好吧,在考虑之后,您应该采用类似于您的第二个替代方案的方法。请问您是如何导航到模态屏幕
C并远离它的?另外,你看过这个官方的例子吗? reactnavigation.org/docs/en/modal.html -
谢谢 一个例子是一个社交网络应用程序:A 是 Feed,B 是一个帖子页面,您可以来回导航 C 是新帖子页面 - 它作为一个模态弹出,您可以靠近回到 A&B 堆栈示例很好,只是模式没有导航标题
标签: react-native react-navigation