React Native Expo路由器选项卡:如何设置标签名称和图标?

iibxawm4  于 2023-03-31  发布在  React
关注(0)|答案(2)|浏览(215)

我在我的React Native expo应用程序中使用expo-router,我的文件是

├── app
│   ├── (main)
│   └── _layout.js
│   └── _foo.js
│   └── _bar.js

一米一米一

import { Tabs } from "expo-router";
import { SafeAreaProvider } from "react-native-safe-area-context";

export default function Layout() {
    return (
      <SafeAreaProvider>
        <Tabs>
          <Tabs.Screen name="foo" screenOptions={{ title: "Foo" }} />
          <Tabs.Screen name="bar" screenOptions={{ title: "Bar" }} />
        </Tabs>
      </SafeAreaProvider>
    );
  }

然而,我的iOS设备上显示的2个选项卡按钮的标题为foobar,而不是FooBar
设置选项卡按钮名称的正确方法是什么?
还有,有没有办法重新排列标签按钮的顺序?比如显示[ Foo | Bar ]而不是[ Bar | Foo ]。谢谢!

rvpgvaaj

rvpgvaaj1#

name属性将显示。因此,您需要将其更改为您想要显示的内容。

bzzcjhmw

bzzcjhmw2#

对于图标:-您可以使用'react-native-vector-icons'库来使用图标.库的链接[https://www.npmjs.com/package/react-native-vector-icons]或者您可以按照此视频进行相同的[https://www.youtube.com/watch?v = gkjYTapyEO8&ab_channel = Arslan]
对于标题:-无论你在组件的名称属性中给予什么名称,都会显示在标签栏中。我使用[https://reactnavigation.org/docs/tab-based-navigation/][1]进行标签导航。

import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
import 'react-native-gesture-handler';
import Icon from 'react-native-vector-icons/Ionicons';

export default function Layout() {
  const Tab = createBottomTabNavigator();
  return (
    <Tab.Navigator
      screenOptions={({route}) => ({
        tabBarIcon: ({focused, size}) => {
          let iconName;
          if (route.name === 'Foo') {
            iconName = focused ? 'home' : 'home-outline';
          } else if (route.name === 'Bar') {
            iconName = focused ? 'basketball' : 'basketball-outline';
          }
          return <Icon name={iconName} size={size} color={'pink'} />;
        },
        tabBarLabelStyle: {
          color: 'pink',
        },
        tabBarStyle: {
          backgroundColor: 'black',
        },
      })}>
      <Tab.Screen name="Foo" component={'You Component Name'} />
      <Tab.Screen name="Bar" component={'You Component Name'} />
    </Tab.Navigator>
  );
}

相关问题