您好,程序员
我在反应导航上遇到了一些问题, 我正在使用 createBottomTabNavigator 来执行Tab Navigator,但是它没有显示图标! 然后将图标替换为可以正常工作的图像,而react native矢量图标不是问题,因为我在其他屏幕上使用了它们并且可以正常工作,
“ react-native-vector-icons”:“ ^ 6.1.0”
“反应导航”:“ ^ 3.0.8”
要使用RN矢量图标的其他屏幕
import React, { Component } from "react";
import { StyleSheet, Text, View, Image } from "react-native";
import { createBottomTabNavigator, createAppContainer } from "react-navigation";
import Icon from "react-native-vector-icons/Ionicons";
import Search from "./src/screen/Search";
import Home from "./src/screen/Home";
import Locations from "./src/screen/Locations";
const TabNavigator = createBottomTabNavigator(
{
Home: {
screen: Home,
navigationOptions: {
tabBarLabel: "Home",
tabBarIcon: ({ tintColor }) => (
<Image
source={require("./assets/rainy.png")}
style={{ width: 26, height: 26, tintColor: tintColor }}
/>
)
}
},
Search: {
screen: Search,
navigationOptions: {
tabBarLabel: "Search",
tabBarIcon: ({ tintColor }) => {
<Icon name="ios-search" size={25} color="#4F8EF7" />;
}
}
},
Locations: {
screen: Locations,
navigationOptions: {
tabBarLabel: "Location",
tabBarIcon: ({ tintColor }) => {
<Icon name="ios-map" size={25} color="#4F8EF7" />;
}
}
}
},
{
tabBarOptions: {
activeTintColor: "#e91e63",
showIcon: true,
showLabel: true,
labelStyle: {
fontSize: 14
},
style: {}
},
navigationOptions: {
tabVisiable: true,
activeTintColor: "red",
animationEnabled: true
}
}
);
export default createAppContainer(TabNavigator);
答案 0 :(得分:1)
您可以像这样使用MaterialCommunityIcons:
import { MaterialCommunityIcons } from 'react-native-vector-icons';
<Tab.Screen
name="Feed"
component={Feed}
options={{
tabBarLabel: 'Home',
tabBarIcon: ({ color, size }) => (
<MaterialCommunityIcons name="home" color={color} size={size} />
),
}}
/>
您可以在此处找到更多信息:https://reactnavigation.org/docs/bottom-tab-navigator/
答案 1 :(得分:0)
您可以尝试在location /support {
default_type "text/html";
types { application/octet-stream html; }
…
}
中定义图标,这是文档示例
navigationOptions
使用routeName可以放置图标
export default createBottomTabNavigator(
{
Home: HomeScreen,
Settings: SettingsScreen,
},
{
navigationOptions: ({ navigation }) => ({
tabBarIcon: ({ focused, horizontal, tintColor }) => {
const { routeName } = navigation.state;
let iconName;
if (routeName === 'Home') {
iconName = `ios-information-circle${focused ? '' : '-outline'}`;
} else if (routeName === 'Settings') {
iconName = `ios-options${focused ? '' : '-outline'}`;
}
// You can return any component that you like here! We usually use an
// icon component from react-native-vector-icons
return <Ionicons name={iconName} size={horizontal ? 20 : 25} color={tintColor} />;
},
}),
tabBarOptions: {
activeTintColor: 'tomato',
inactiveTintColor: 'gray',
},
}
);