首页 > 解决方案 > 使场景在其他选项卡中可用 - 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 场景中获取底部标签栏?

标签: iosreact-nativereact-native-router-flux

解决方案


根据您的第二次更新(将 audioPlayer 场景放在选项卡之外),在将道具添加clone到 AudioPlayer 场景时尝试这种方法。

<Scene 
  key="audioPlayer"
  component={AudioPlayer}
  title="AUDIO PLAYER"
  clone
 />

编辑:解释克隆的作用

从文档

标有克隆的场景将被视为模板,并在推送时克隆到当前场景的父级中。

这意味着推送的场景audioPlayer将使用父选项卡场景作为模板进行渲染,从而渲染选项卡按钮。


推荐阅读