字体未加载到我的React-Native项目-Android中

问题描述

我认为重组我的RN项目以导出APK时出了点问题。这是问题所在:

我在其中一个组件中使用@ expo // vector-icons中的复选框和其他一些图标。

每次启动它时,都会丢失一种字体。羽毛,MaterialCommunityIcons,... 我在其他组件的搜索栏中也遇到了同样的问题。

我关闭应用中的错误后,复选框和图标看起来像

checkbox_error

我真的很努力地修复它(几个小时),并以某种方式导入我的字体...

如果有人看到了什么地方不对,这就是我代码的开头...谢谢大家!

“ sdkVersion”:“ 35.0.0”,

    componentDidMount() {
        this.loadAssetsAsync()
      }
    
    loadAssetsAsync = async () => {
        await Font.loadAsync({
        MaterialCommunityIcons,Feather: require('../assets/Fonts/Feather.ttf'),FontAwesome: require('../assets/Fonts/FontAwesome.ttf'),'Material Icons': require('../assets/Fonts//MaterialIcons.ttf'),'MaterialIcons': require('../assets/Fonts//MaterialIcons.ttf'),'MaterialCommunityIcons': require('../assets/Fonts//MaterialCommunityIcons.ttf'),'Material-Community-Icons': require('../assets/Fonts//MaterialCommunityIcons.ttf'),})
      }

致命错误

Fatal_error

警告

Warning_message

解决方法

字体在加载后之后异步加载。因此,在渲染组件的子代之前,您需要等待字体。所以您可以尝试类似

loadAssetsAsync = async () => {
    await Font.loadAsync({
    MaterialCommunityIcons,Feather: require('../assets/Fonts/Feather.ttf'),FontAwesome: require('../assets/Fonts/FontAwesome.ttf'),'Material Icons': require('../assets/Fonts//MaterialIcons.ttf'),'MaterialIcons': require('../assets/Fonts//MaterialIcons.ttf'),'MaterialCommunityIcons': require('../assets/Fonts//MaterialCommunityIcons.ttf'),'Material-Community-Icons': require('../assets/Fonts//MaterialCommunityIcons.ttf'),})
    this.setState({fontsLoaded: true})
  }

  render(){
      if(this.state.fontsLoaded){
          return(
            // Your component
          )
      }
      else{
          return(
            <View>
                <ActivityIndicator />
            </View>
          )
      }
  }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...