React Native中使用Vector Icons显示红色感叹号怎么办?
大家好,我在用react-native-vector-icons时,按照文档安装完字体包后,页面上只显示红色感叹号。已经用npm install了包并重启了metro,代码是这样写的:
import Icon from 'react-native-vector-icons/Feather';
const App = () => (
<View>
<Icon name="home" size={30} color="black" />
</View>
);
我试过清除缓存、重新链接,甚至换过MaterialIcons还是不行。是不是需要额外配置字体文件?或者有什么步骤漏掉了?求大神指点!
首先确认你是不是用的是React Native CLI项目还是Expo项目。如果是Expo,直接用
expo install @expo/vector-icons,然后用import { Feather } from '@expo/vector-icons';就完事了,不用折腾字体链接。如果是React Native CLI项目,检查一下是不是漏了手动链接字体文件。虽然现在新版自动链接能处理很多情况,但有时候还是得手动操作。具体步骤:
1. 找到
node_modules/react-native-vector-icons/Fonts目录,把里面的字体文件复制到你的项目android/app/src/main/assets/fonts目录下。如果assets或者fonts文件夹不存在,自己手动建一个。2. 然后重新运行
npx react-native-asset命令,确保字体被正确打包进项目。3. 最后彻底清理缓存再重启,执行
watchman watch-del-all && rm -rf node_modules/ && npm cache clean --force && npm install,再跑npx react-native run-android。还有一种可能是你用的包版本问题。直接用下面这个代码片段试试看,固定一下依赖版本:
记得在
package.json里锁定版本:搞定之后再跑一次
npm install,应该就没问题了。如果还是不行,大概率是环境问题,建议检查一下Android Studio的配置或者Node版本是不是太新了,降级试一下。