Мой проект - это реакция собственного реагента clojureScript на expo, и мне нужно настроить шрифт.Я уже читал документацию expo о том, как настраивать шрифт и пытался следовать инструкции в ClojureScript.
(инструкция по использованию шрифта expo https://docs.expo.io/versions/latest/guides/using-custom-fonts)
асинхронная загрузка шрифта, это загрузка асинхронной функции
(defn load-font-async
[name url]
(.call (aget Font "loadAsync")
Font
(js-obj "Kanit" url)))
, вызывающей асинхронную функцию загрузки перед рендерингом.
(->
(expo/load-font-async "Kanit" (js/require "./assets/fonts/Kanit/Kanit-Regular.ttf"))
(.then (fn [] (.registerComponent app-registry "main" #(r/reactify-component app-root))))))
ps. Не рекомендуется держать все приложение только длязагрузка шрифта, но мне просто нужно убедиться, что шрифт уже загружен. (Мне нужен рефакторинг)
Я установил стиль семейства шрифтов для текстового компонента
[text {:style {:font-family "Kanit"}} "test"]
, но текстовый компонент не может найти семейство шрифтов "Kanit", которое я уже объявляю и загружаю. Ошибка была
Unrecognized font family 'Kanit'
Я пока пуст, что не так с этим решением?
ps. Скажите, если вам нужна дополнительная информация, спасибо за ответ:)
ОБНОВЛЕНО : из рекомендации Криса Кэллейта я переместил expo/load-font-async
в app-root идиспетчеризация для текстового компонента Tell, только присоединение семейства шрифтов к шрифтуредакторкак это
(defn app-root []
(let [ ... ]
(expo/load-font-async [{"Kanit" (js/require "./assets/fonts/Kanit/Kanit-Regular.ttf")}]
(rf/dispatch [:app/set-font-loaded true]))
(r/create-class {:reagent-render ..... }))))
, и он по-прежнему имеет ту же ошибку :(.