Tam*_*fer 7 stack tabs nested react-native react-navigation
我已经使用createMaterialTopTabNavigator创建了一个自定义标签导航器,但是在其中一个标签中,我想创建一个StackNavigator。这可能吗?
我发现很多嵌套在堆栈或抽屉中的制表符示例,但没有嵌套在选项卡中的堆栈示例!
本质上,我想在“选项卡屏幕”之一上具有一些按钮,这些按钮可以导航到其他一些屏幕,但我不想从“选项卡”中导航。(初始选项卡始终可见/选中)-只需单击一个按钮,然后转到另一个屏幕,然后返回即可。
TabNavigator:
-设置屏幕(选项卡1)
-关于我们(单击按钮会打开“关于我们”屏幕)
-帐户设置(单击按钮可打开“关于我们”屏幕)
-联系我们(单击按钮可打开“关于我们”屏幕)
-搜索屏幕(标签2)
-个人资料屏幕(标签3)
如果有任何建议,将不胜感激!:)
是的,你可以这样做
您可以通过执行以下操作将StackNavigator嵌套在TabNavigator中-
import { TabNavigator, StackNavigator } from 'react-navigation'
export const TabNavigator = TabNavigator({
SettingsScreenStack: { screen: SettingsScreenStack },
SearchScreen: { screen: SearchScreen },
ProfileScreen: { screen: ProfileScreen },
}, {
order: ['SettingsScreenStack', 'SearchScreen', 'ProfileScreen'],
initialRouteName: 'SettingsScreenStack',
});
export const SettingsScreenStack = StackNavigator({
AboutUsScreen: { screen: AboutUsScreen },
AccountSettingsScreen: { screen: AccountSettingsScreen },
ContactUsScreen: { screen: ContactUsScreen },
}, {
initialRoute: 'AboutUsScreen',
})
Run Code Online (Sandbox Code Playgroud)
...
希望能有所帮助。
小智 5
是的,您可以将 StackNavigator 嵌套在 TabNavigator 中
访问:-每个选项卡的堆栈导航器
import * as React from 'react';
import { Button, Text, View } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
function DetailsScreen() {
return (
/* content */
);
}
function HomeScreen({ navigation }) {
return (
/* content */
);
}
function SettingsScreen({ navigation }) {
return (
/* content */
);
}
const HomeStack = createStackNavigator();
function HomeStackScreen() {
return (
<HomeStack.Navigator>
<HomeStack.Screen name="Home" component={HomeScreen} />
<HomeStack.Screen name="Details" component={DetailsScreen} />
</HomeStack.Navigator>
);
}
const SettingsStack = createStackNavigator();
function SettingsStackScreen() {
return (
<SettingsStack.Navigator>
<SettingsStack.Screen name="Settings" component={SettingsScreen} />
<SettingsStack.Screen name="Details" component={DetailsScreen} />
</SettingsStack.Navigator>
);
}
const Tab = createBottomTabNavigator();
export default function App() {
return (
<NavigationContainer>
<Tab.Navigator>
<Tab.Screen name="Home" component={HomeStackScreen} />
<Tab.Screen name="Settings" component={SettingsStackScreen} />
</Tab.Navigator>
</NavigationContainer>
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2947 次 |
| 最近记录: |