我的tabbar设置如下:
<Router>
<Stack key="root">
<Scene
key="tabbar"
tabs
tabBarStyle={styles.tabBar}
>
<Scene
key="home"
title="HOME"
>
<Scene
key="home"
component={Home}
/>
<Scene
key="audioPlayer"
component={AudioPlayer}
title="AUDIO PLAYER"
/>
<Scene
key="notification"
component={Notification}
title="NOTIFICATIONS"
/>
<Scene
key="search"
component={Search}
title="SEARCH"
/>
</Scene>
<Scene
key="latest"
title="LATEST"
component={Latest}
/>
<Scene
key="offline"
component={Offline}
title="OFFLINE"
/>
<Scene
key="more"
component={More}
title="MORE"
/>
</Scene>
</Stack>
</Router>
案件 :
我有4个标签命名为:Home,Latest,Offline&More。
我可以从Home选项卡轻松导航到audioPlayer场景。
Actions.audioPlayer();
因为我在Home标签场景中添加了audioPlayer场景。
问题:
如何从最新场景导航到Home场景内的audioPlayer场景?
有什么建议。我是否应该在最新场景中添加audioPlayer场景以进行导航?
谢谢。
P.S:我不想把audioPlayer场景放在我的最新标签中。我不知道这是否是唯一的解决方案。
更新:
如果我做 ,
Actions.audioPlayer();
从最新的标签,我导航到主页选项卡,从那里到audioPlayer场景。
我想在最新选项卡中进行导航。 :)
更新2:
如果我把audioPlayer场景放在tabbar之外。我可以像我想的那样导航到audioPlayer场景。但是我遇到了一个问题。如何在audioPlayer场景中获得底部标签栏?
根据您的第二次更新(将audioPlayer场景放在选项卡之外),在将prop clone
添加到AudioPlayer场景时尝试该方法。
<Scene
key="audioPlayer"
component={AudioPlayer}
title="AUDIO PLAYER"
clone
/>
来自文档
标记为克隆的场景将被视为模板,并在推送时克隆到当前场景的父级中。
这意味着推送的场景audioPlayer
将使用父标签场景作为模板进行渲染,从而呈现标签按钮。