Обновление Expo SDK38 — семейство шрифтов «FontAwesome» не является системным шрифтом и не было загружено через Font.LoadAsync

#react-native #expo

#react-native #expo

Вопрос:

Поскольку я обновился до Expo SDK 38, я получаю эту ошибку при запуске своего приложения. Мне нужно перейти на SDK38, потому что Android не позволит мне публиковать ни в одной версии less.

На SDK37 это работало нормально, единственное, что я изменил, это то, что я обновил все пакеты с помощью expo upgrade, также была ошибка error: unknown option --assetExts , поэтому мне пришлось удалить это из app.json, что может быть причиной. Я изменил assetExts на sourceExts , что привело к его компиляции, но, возможно, это останавливает работу шрифтов..

 "packagerOpts": {         
    "assetExts": ["otf", "ttf"]    
},
  

введите описание изображения здесь

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

Я также попытался удалить мои node_modules, package.json.блокировка папок и .expo, все это не помогло.

https://docs.expo.io/guides/preloading-and-caching-assets/#pre-loading-and-caching-assets

 import { FontAwesome } from "@expo/vector-icons";

function cacheFonts(fonts) {
    return fonts.map((font) => Font.loadAsync(font));
}

const fontAssets = cacheFonts([FontAwesome.font]);
await Promise.all([...fontAssets]);
  

Ответ №1:

Оказывается, это была проблема с кэшем, код был абсолютно исправен. Я думал, что все очистил, но, очевидно, нет.

Удалены node_modules, package.json.снова блокировка, и npm установлен и работает нормально.

Комментарии:

1. Спасибо! У меня это сработало.