能否无需单独安装react-native-vector-icons,通过Nativebase Icon获取getImageSource?
关于Nativebase Icon与react-native-vector-icons的使用问题
没错,你完全不需要单独安装和链接react-native-vector-icons!因为Nativebase已经将它作为核心依赖集成进去了,只要你正常安装了Nativebase,底层的图标库就已经准备就绪,可以直接通过Nativebase的Icon包装器来调用getImageSource方法。
具体实现步骤
- 首先从Nativebase导入
Icon组件 - 调用
Icon.getImageSource()方法,参数和直接使用react-native-vector-icons的方式一致:依次传入图标家族(可选,默认是Ionicons)、图标名称、大小、颜色 - 这个方法返回一个Promise,你可以用
async/await或者.then()来获取图片源,之后就能把它传入react-native-navigation的startTabBasedApp配置中
代码示例
import { Icon } from 'native-base'; import { Navigation } from 'react-native-navigation'; // 异步启动Tab应用的示例 const initTabApp = async () => { // 获取首页图标源 const homeTabIcon = await Icon.getImageSource( 'home', // 图标名称 24, // 图标大小 '#888' // 图标颜色 ); // 获取设置页图标源 const settingsTabIcon = await Icon.getImageSource( 'settings', 24, '#888' ); // 启动Tab应用 Navigation.startTabBasedApp({ tabs: [ { screen: 'app.HomeScreen', label: '首页', icon: homeTabIcon, selectedIcon: await Icon.getImageSource('home', 24, '#007AFF') // 选中状态的图标 }, { screen: 'app.SettingsScreen', label: '设置', icon: settingsTabIcon, selectedIcon: await Icon.getImageSource('settings', 24, '#007AFF') } ] }); }; // 初始化应用 initTabApp();
注意事项
- 确保Nativebase安装正确:执行
npm install native-base --save或yarn add native-base即可,React Native 0.60+版本会自动处理依赖链接,无需手动执行react-native link - 如果遇到图标不显示的问题,可以尝试清理缓存:
npx react-native start --reset-cache,或者检查Nativebase版本与你的React Native版本是否兼容 - 若需要使用特定图标家族(比如FontAwesome),只需在
getImageSource的第一个参数指定家族名称即可,例如:Icon.getImageSource('font-awesome', 'coffee', 24, '#888')
内容的提问来源于stack exchange,提问作者Greg Brown
相关产品推荐
相关产品推荐

