React native react native router flux:切换选项卡时如何保留父导航栏?

React native react native router flux:切换选项卡时如何保留父导航栏?,react-native,react-native-router-flux,React Native,React Native Router Flux,我的路由器中目前有以下内容: <Scene key="results" title="Query Results" tabs={true} tabBarStyle={style.tabBarStyle}> <Scene key="listResultsTab" title="List" icon={TabIcon} > <Scene key="listResults" component={Li

我的路由器中目前有以下内容:

<Scene key="results" title="Query Results"
    tabs={true} tabBarStyle={style.tabBarStyle}>
    <Scene
      key="listResultsTab"
      title="List"
      icon={TabIcon}
    >
      <Scene key="listResults" component={ListResultsScene} title="Results List" />
    </Scene>

    <Scene
      key="mapResultsTab"
      title="Map"
      icon={TabIcon}
    >
      <Scene key="mapResults" component={MapResultsScene} title="Results Map" />
    </Scene>
</Scene>
在选项卡之间切换时,有没有办法保持queryResults的导航栏

每个选项卡都有自己的导航栏。但是,如果不使用hideNavBar={true}设置其父项,则选项卡的导航栏将被其父项覆盖

然而,情况似乎并非如此。我没有使用hideNavBar,父项的导航栏仍被选项卡的覆盖。我想也许我可以在选项卡上使用hideNavBar,但这只会完全删除导航栏

编辑:使用更详细的信息进行更新

这是我的完整场景列表

import React from 'react';
import {StyleSheet, Text } from 'react-native';
import { Actions, Scene, ActionConst } from 'react-native-router-flux';
import LaunchScene from '../scenes/LaunchScene';
import LoginScene from '../scenes/LoginScene';
import WorkspaceSelectionScene from '../scenes/WorkspaceSelectionScene';
import QuerySelectionScene from '../scenes/QuerySelectionScene';
import EditQueryScene from '../scenes/EditQueryScene';
import ListResultsScene from '../scenes/ListResultsScene';
import MapResultsScene from '../scenes/MapResultsScene';

const style = StyleSheet.create({
        tabBarStyle: {
            borderTopWidth : .5,
            borderColor    : '#b7b7b7',
            backgroundColor: 'white',
            opacity: 1
        },
        padForNavBar: {
          paddingTop: 64
        }
});

const TabIcon = ({ selected, title }) => {
  return (
    <Text style={{color: selected ? 'red' :'black'}}>{title}</Text>
  );
}

const scenes = Actions.create(
  <Scene key="root">
    <Scene key="login" component={LoginScene} title="Login" sceneStyle={style.padForNavBar} />
    <Scene key="workspaceSelection" component={WorkspaceSelectionScene}
      title="Workspace Selection" sceneStyle={style.padForNavBar} />
    <Scene key="querySelection" component={QuerySelectionScene}
      title="Query Selection" sceneStyle={style.padForNavBar} />
    <Scene key="launch" component={LaunchScene} title="Launch" sceneStyle={style.padForNavBar} />
    <Scene key="editQuery" component={EditQueryScene} title="Edit Query" sceneStyle={style.padForNavBar} />
    <Scene key="results" title="Query Results"
        tabs={true} tabBarStyle={style.tabBarStyle}>
        <Scene
          key="listResultsTab"
          title="List"
          icon={TabIcon}
        >
          <Scene key="listResults" component={ListResultsScene} title="Results List" sceneStyle={style.padForNavBar} />
        </Scene>

        <Scene
          key="mapResultsTab"
          title="Map"
          icon={TabIcon}
        >
          <Scene key="mapResults" component={MapResultsScene} title="Results Map" sceneStyle={style.padForNavBar} />
        </Scene>
    </Scene>
  </Scene>
);

export default scenes
从“React”导入React;
从“react native”导入{StyleSheet,Text};
从“react native router flux”导入{Actions,Scene,ActionConst};
从“../scenes/LaunchScene”导入启动场景;
从“../scenes/LoginScene”导入LoginScene;
从“../scenes/WorkspaceSelectionScene”导入WorkspaceSelectionScene;
从“../scenes/QuerySelectScene”导入QuerySelectScene;
从“../scenes/EditQueryScene”导入EditQueryScene;
从“../scenes/ListResultsScene”导入ListResultsScene;
从“../scenes/MapResultsScene”导入MapResultsScene;
const style=StyleSheet.create({
tabBarStyle:{
borderTopWidth:.5,
边框颜色:“#b7b7”,
背景颜色:“白色”,
不透明度:1
},
padForNavBar:{
加油站:64
}
});
常量选项卡图标=({选定,标题})=>{
返回(
{title}
);
}
const scenes=Actions.create(
);
导出默认场景
当我点击嵌套在结果场景中的listResults选项卡时,我的选项卡就是这个样子。请注意,我仍然可以返回到前面的页面。

但是,当我将选项卡切换到mapResults选项卡(仍在结果场景中)时,导航栏将重置。我无法再使用“后退”按钮。切换回listResults不会恢复它。

我有东西要给你,伙计,把它添加到你的场景中,它会阻止你的状态重置<代码>类型={ActionConst.REFRESH}

这将刷新堆栈,或者您可以执行以下操作:

componentDidMount(){
Actions.refresh({backTitle: ()=> this.props.title})
}
要从堆栈中弹出的位置


干杯:)

作为更新,这是图书馆的一个问题。打开了一个问题,并在随后的提交中更正了该问题。

新的navbar覆盖了以前来自navbar的数据?是。当我点击queryResults时,我可以返回launchScreen。但是,一旦我切换选项卡,导航栏将重置,我将无法再移回launchScreen。如果可能,请共享gif,代码尝试删除
listResultsTab
场景,并直接将其替换为“listResults”。这肯定会奏效的。如果不让我知道,我已经面对同样的问题,并以某种方式解决了。没有解决它<代码>这并没有解决问题。有关更多详细信息,请参阅文章中的编辑。
componentDidMount(){
Actions.refresh({backTitle: ()=> this.props.title})
}