我的标签栏设置如下:
<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个标签分别为:首页,最新,离线和更多。
我可以从“主页”选项卡轻松导航到audioPlayer场景。
Actions.audioPlayer();
因为我已在该“首页”选项卡场景中添加了audioPlayer场景。
问题:
如何从最新场景导航到Home场景内的那个audioPlayer场景?
任何建议。 我是否必须在“最新场景”中添加audioPlayer场景以进行导航?
谢谢。
P.S:我不想将那个audioPlayer场景放到我的最新标签中。 我不知道这是否是唯一的解决方案。
更新:
如果我这样做
Actions.audioPlayer();
从最新选项卡,我导航到主选项卡,然后从那里导航到audioPlayer场景。
我希望该导航位于“最新”标签中。 :)
更新2:
如果我将audioPlayer场景放置在tabbar之外。我可以根据需要导航到audioPlayer场景。 但是我有一个问题。 如何在该audioPlayer场景中获得底部的标签栏?
答案 0 :(得分:1)
根据您的第二次更新(将audioPlayer场景置于选项卡之外),在将道具clone
添加到AudioPlayer场景时尝试该方法。
<Scene
key="audioPlayer"
component={AudioPlayer}
title="AUDIO PLAYER"
clone
/>
来自文档
标记为克隆的场景将被视为模板,并在按下时克隆到当前场景的父级中。
这意味着将使用父选项卡场景作为模板来渲染推送的场景audioPlayer
,从而渲染选项卡按钮。