我目前在我的路由器如下: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={ListResultsScene} title="Results List" />
</Scene>
<Scene
key="mapResultsTab"
title="Map"
icon={TabIcon}
>
<Scene key="mapResults" component={MapResultsScene} title="Results Map" />
</Scene>
</Scene>
到目前爲止,它創建了兩個標籤的ListResults和MapResults組件之間交替,這是我想要的標籤欄。但是,這些選項卡各自維護着自己的導航欄。這不一定是一個問題,除了它會覆蓋父導航欄,因此我無法訪問查詢結果前的任何內容。
我理想的配置會是這樣的:
launchScreen --> queryResults----->listResults -> ... ->
|
-->mapResults-> ... ->
有什麼辦法讓queryResults的導航欄,同時在標籤之間切換?
的docs說
每個標籤都有自己的導航欄。但是,如果您未將其父級設置爲hideNavBar = {true},則選項卡的導航欄將被其父級覆蓋。
然而這似乎並非如此。我沒有使用hideNavBar,並且父級的導航欄仍然被選項卡覆蓋。我想也許我可以在選項卡上使用hideNavBar,但只能完全刪除navBar。
編輯:更新更詳細的信息。
這是我的完整場景列表。
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
這就是我的標籤樣子時,我打嵌套結果現場內listResults標籤。請注意,我仍然可以返回到前幾頁。
但是,當我切換選項卡到mapResults選項卡,仍然在結果場景內,導航欄被重置。我不再有權訪問後退按鈕。切換回listResults不會恢復它。
您以前的導航欄中的數據會被新的導航欄覆蓋嗎? – Codesingh
是的。當我點擊queryResults時,我可以回到launchScreen。但是,一旦我切換標籤,導航欄將被重置,我不能再移動到launchScreen。 – JCDJulian
如果可能,請分享gif,代碼 – Codesingh