BottomTabNavigator.jsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import * as React from 'react';
  2. import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
  3. import HomeScreen from '../screens/Main/HomeScreen';
  4. import OrderScreen from '../screens/Order/OrderScreen';
  5. import UserScreen from '../screens/User/UserScreen';
  6. import Icon from '../components/SvgIcon';
  7. import Text from '../components/Text';
  8. const BottomTab = createBottomTabNavigator();
  9. export default function BottomTabNavigator() {
  10. return (
  11. <BottomTab.Navigator initialRouteName="Home">
  12. <BottomTab.Screen
  13. name="Home"
  14. component={HomeScreen}
  15. options={{
  16. title: ({ focused }) => (
  17. <Text size="c2" bold type={focused ? 'primary' : 'info'}>
  18. 外卖
  19. </Text>
  20. ),
  21. tabBarIcon: ({ focused }) => (
  22. <Icon
  23. fillAll={!!focused}
  24. type={focused ? 'primary' : 'info'}
  25. width={37}
  26. name="home"
  27. />
  28. ),
  29. }}
  30. />
  31. <BottomTab.Screen
  32. name="Order"
  33. component={OrderScreen}
  34. options={{
  35. title: ({ focused }) => (
  36. <Text size="c2" bold type={focused ? 'primary' : 'info'}>
  37. 订单
  38. </Text>
  39. ),
  40. tabBarIcon: ({ focused }) => (
  41. <Icon name={focused ? 'order1' : 'order2'} />
  42. ),
  43. }}
  44. />
  45. <BottomTab.Screen
  46. name="User"
  47. component={UserScreen}
  48. options={{
  49. title: ({ focused }) => (
  50. <Text size="c2" bold type={focused ? 'primary' : 'info'}>
  51. 我的
  52. </Text>
  53. ),
  54. tabBarIcon: ({ focused }) => (
  55. <Icon
  56. type={focused ? 'primary' : 'info'}
  57. fillAll={!!focused}
  58. name="user"
  59. />
  60. ),
  61. }}
  62. />
  63. </BottomTab.Navigator>
  64. );
  65. }