fontFamily 'Arial' 不是使用 react-native-textinput-effects 的系统字体

Posted

技术标签:

【中文标题】fontFamily \'Arial\' 不是使用 react-native-textinput-effects 的系统字体【英文标题】:fontFamily 'Arial' is not a system font using react-native-textinput-effectsfontFamily 'Arial' 不是使用 react-native-textinput-effects 的系统字体 【发布时间】:2018-07-27 10:01:48 【问题描述】:

我在使用 react-native-textinput-effects 时出错。 这是我的错误信息:

fontFamily 'Arial' 不是系统字体,尚未加载 通过 Expo.Font.loadAsync。 - node_modules\react-native\Libraries\Renderer\ReactNativeRenderer-dev.js:3382:38 在差异属性中 - 如果您打算使用系统字体,请确保您输入的名称正确且受您的设备操作系统支持。

如果这是自定义字体,请务必使用 Expo.Font.loadAsync 加载它。 node_modules\expo\src\Font.js:34:10 in processFontFamily node_modules\react-native\Libraries\Renderer\ReactNativeRenderer-dev.js:3382:38 在 diffProperties 中 ...来自框架内部的另外 30 个堆栈帧

这是我的代码:

import React,  Component  from 'react'
import  StyleSheet, View, Text, TextInput, Image, TouchableOpacity  from 'react-native'
import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome';
import  Font  from "expo";

import   Fumi from 'react-native-textinput-effects';

class Login extends React.Component 

  render() 
    return (
      <View style=styles.main_container>
        <View style=styles.subview_container>

   <View style=[styles.card2,  backgroundColor: '#a9ceca' ]>
          <Text style=styles.title>Fumi</Text>
          <Fumi

            label='Course Name'
            labelStyle= color: '#a3a3a3' 
            inputStyle= color: '#f95a25' 
            iconClass=FontAwesomeIcon
            iconName='university'
            iconColor='#f95a25'
            iconSize=15
          />
          <Fumi
            style=styles.input
            label='Degree'
            iconClass=FontAwesomeIcon
            iconName='graduation-cap'
            iconColor='#77116a'
          />
        </View>



        </View>
      </View>
    )
  


const styles = StyleSheet.create(

  main_container: 
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    borderColor: '#555500',
  ,
  subview_container: 

  ,
card2: 
   padding: 16,
 ,
 input: 
   marginTop: 4,
 ,
 title: 
   paddingBottom: 16,
   textAlign: 'center',
   color: '#404d5b',
   fontSize: 20,
   fontWeight: 'bold',
   opacity: 0.8,
 
)

export default Login

我尝试使用此代码加载 Arial 字体但没有成功:

 componentDidMount() 
    Font.loadAsync(
      'Arial': require('./assets/fonts/Arial.ttf'),
    );
  

你能帮帮我吗?

【问题讨论】:

查看这个问题:https://github.com/halilb/react-native-textinput-effects/issues/58 德克萨斯州。我删除 fontFamily: 'Arial',on Fumi.js 【参考方案1】:

检查一下,它是 app.js 的正常工作代码,只是适应你的情况

  import React from "react";
  import  AppLoading, Font  from "expo";
  import  StyleSheet, Text, View  from "react-native";

  export default class App extends React.Component 
     state = 
       loaded: false,
     ;

     componentWillMount() 
       this._loadAssetsAsync();
     

     _loadAssetsAsync = async () => 
       await Font.loadAsync(
         diplomata: require("./assets/fonts/DiplomataSC-Regular.ttf"),
       );
       this.setState( loaded: true );
     ;

     render() 
       if (!this.state.loaded) 
         return <AppLoading />;
       

     return (
      <View style=styles.container>
        <Text style=styles.info>
          Look, you can load this font! Now the question is, should you use it?
          Probably not. But you can load any font.
        </Text>
      </View>
      );
     
    

  const styles = StyleSheet.create(
       container: 
         flex: 1,
         backgroundColor: "#fff",
         alignItems: "center",
         justifyContent: "center",
         padding: 30,
       ,
       info: 
         fontFamily: "diplomata",
         textAlign: "center",
         fontSize: 14,
       ,
   );

【讨论】:

以上是关于fontFamily 'Arial' 不是使用 react-native-textinput-effects 的系统字体的主要内容,如果未能解决你的问题,请参考以下文章

使用React Native在Android / iOS上使用不同的lineHeight

iOS swift UIFont 字体名称大全,图解及使用方法

UIFont 字体样式 [UIFont fontWithName~];

React Native - Expo:fontFamily 'SimpleLineIcons' 不是系统字体,尚未通过 Font.loadAsync 加载

fontFamily Material Icons 不是系统字体,必须通过 Exponent 加载

如何在config.js中定义多个常量