mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-04-30 05:15:25 +08:00
56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import * as React from 'react';
|
|
import {
|
|
useNavigationBuilder,
|
|
createNavigatorFactory,
|
|
DefaultNavigatorOptions,
|
|
} from '@react-navigation/native';
|
|
import {
|
|
TabRouter,
|
|
TabRouterOptions,
|
|
TabNavigationState,
|
|
} from '@react-navigation/routers';
|
|
import BottomTabView from '../views/BottomTabView';
|
|
import {
|
|
BottomTabNavigationConfig,
|
|
BottomTabNavigationOptions,
|
|
BottomTabNavigationEventMap,
|
|
} from '../types';
|
|
|
|
type Props = DefaultNavigatorOptions<BottomTabNavigationOptions> &
|
|
TabRouterOptions &
|
|
BottomTabNavigationConfig;
|
|
|
|
function BottomTabNavigator({
|
|
initialRouteName,
|
|
backBehavior,
|
|
children,
|
|
screenOptions,
|
|
...rest
|
|
}: Props) {
|
|
const { state, descriptors, navigation } = useNavigationBuilder<
|
|
TabNavigationState,
|
|
TabRouterOptions,
|
|
BottomTabNavigationOptions,
|
|
BottomTabNavigationEventMap
|
|
>(TabRouter, {
|
|
initialRouteName,
|
|
backBehavior,
|
|
children,
|
|
screenOptions,
|
|
});
|
|
|
|
return (
|
|
<BottomTabView
|
|
{...rest}
|
|
state={state}
|
|
navigation={navigation}
|
|
descriptors={descriptors}
|
|
/>
|
|
);
|
|
}
|
|
|
|
export default createNavigatorFactory<
|
|
BottomTabNavigationOptions,
|
|
typeof BottomTabNavigator
|
|
>(BottomTabNavigator);
|