ios - 使场景在其他选项卡中可用 - React Native Router Flux
问题描述
我的标签栏设置如下:
<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();
因为我在那个 Home 选项卡场景中添加了 audioPlayer 场景。
问题 :
如何从最新场景导航到 Home 场景中的 audioPlayer 场景?
有什么建议么。我是否必须在最新场景中添加 audioPlayer 场景以进行导航?
谢谢。
PS:我不想把那个 audioPlayer 场景放在我最新的标签中。我不知道这是否是唯一的解决方案。
更新:
如果我做 ,
Actions.audioPlayer();
从最新选项卡,我导航到主页选项卡,然后从那里导航到 audioPlayer 场景。
我想在最新选项卡中拥有该导航。:)
更新 2:
如果我将 audioPlayer 场景放在 tabbar 之外。我可以根据需要导航到 audioPlayer 场景。但我遇到了一个问题。如何在该 audioPlayer 场景中获取底部标签栏?
解决方案
根据您的第二次更新(将 audioPlayer 场景放在选项卡之外),在将道具添加clone
到 AudioPlayer 场景时尝试这种方法。
<Scene
key="audioPlayer"
component={AudioPlayer}
title="AUDIO PLAYER"
clone
/>
编辑:解释克隆的作用
从文档
标有克隆的场景将被视为模板,并在推送时克隆到当前场景的父级中。
这意味着推送的场景audioPlayer
将使用父选项卡场景作为模板进行渲染,从而渲染选项卡按钮。