Загрузка настроенного шрифта в реагировать родной - PullRequest
0 голосов
/ 12 июня 2019

Я хочу загрузить пользовательский шрифт в мое приложение.

Я пытаюсь это

  • Создать ресурсы / шрифты, где вы можете найти шрифты, которые я хочу использовать
  • Я добавляю rnmp в package.json следующим образом:"rnmp": {"assets": ["./assets/fonts/"]}
  • Я ссылаюсь так: реакция на родную ссылку
  • Затем я использую свой шрифт какчто: fontFamily: "Lato-Light",

    {
    
     "main": "node_modules/expo/AppEntry.js",
     "scripts": {
         "start": "expo start",
         "android": "expo start --android",
         "ios": "expo start --ios",
         "eject": "expo eject"
      },
     "dependencies": {
         "expo": "^32.0.6",
         "react": "16.5.0",
         "react-native": "https://github.com/expo/react-native/archive/sdk- 
     32.0.0.tar.gz",
     "react-navigation": "^3.11.0"
     },
    "devDependencies": {
         "babel-preset-expo": "^5.0.0"
    },
    "rnmp": {
         "assets": ["./assets/fonts/"]
    },
    "private": true
    }
    

Шрифт должен быть загружен, но я получаю эту ошибку:

"fontFamily" "Lato-Light"не является системным шрифтом и не был загружен через Font.loadAsync

1 Ответ

1 голос
/ 12 июня 2019

Я предполагаю, что вы используете выставку в этом проекте.Как показано в сообщении об ошибке, вам просто нужно загрузить нужные шрифты в процессе загрузки приложения.В файле App.js импортируйте шрифты, которые вы хотите использовать в качестве const, и добавьте асинхронный вызов, чтобы загрузить их в приложение.Вы можете использовать следующий код:

//In  the import section
import {Font} from 'expo';
const Light = require('./assets/fonts/Lato-Light.ttf');

//In the componentDidMount
await Font.loadAsync({
    'Lato-Light': Light
}); 

Обратите внимание на ожидание в вызове Font.loadAsync.Вы должны сделать метод componentDidMount async (async componentDidMount () {...}), а затем добавить await перед вызовом Font ...

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...