Так как все задачи кроме этой у меня пройдены - страдаю фигней - пытаюсь оптимизировать код.
По новому:
import React, { useState, useEffect } from 'react'
import { View, Text, StyleSheet, ActivityIndicator } from 'react-native'
import * as Font from 'expo-font'
import fonticons from './src/assets/fonts/fontIcon/fonticons.ttf'
import RobotoBold from './src/assets/fonts/Roboto/Roboto-Bold.ttf'
import RobotoMedium from './src/assets/fonts/Roboto/Roboto-Medium.ttf'
import RobotoRegular from './src/assets/fonts/Roboto/Roboto-Regular.ttf'
export default function App() {
const [fontLoaded, loadFont] = useState(false)
useEffect(
() => {
const loadFontsAsync = async () => {
const data = await Font.loadAsync(
{
fonticons,
RobotoBold,
RobotoMedium,
RobotoRegular,
}
)
loadFont(data)
};
loadFontsAsync()
}, [])
if (fontLoaded === false) {
return (<ActivityIndicator size="small" color="#0000ff" />);
} else {
return (
<View styles={styles.container}>
<Text style={{ fontFamily: 'RobotoBold' }}>Open up App.js to start working on your app!</Text>
</View>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
})
как видим - задачу я удалил, заново загрузил, переписал загрузку шрифтов через стандартный импорт вместо устаревшего require
.
Собственно результат:
как видим не поменялся)))
Также пробовал грузить шрифты через хук useFonts
от того же expo-font
(в документации собственно так и написано -
)
Результат собственно ничем не отличается от использования Font.loadAsync
- загрузка шрифтов происходит, шрифты я могу использовать при рендеринге компоненты.
Что еще пробовал?
- выносил
Font.loadAsync
в отдельную функцию, которую потом вызывал в useEffect
- переписывал вызов
Font.loadAsync
без использования асинхронной функции внутри useEffect
- стрелял из космоса, лазером, по лягушкам
В итоге результат один - при рендеринге компонента я жду получения шрифтов и вывожу иконку лоадинга, получив шрифты вывожу текст и применяю к нему шрифты....
Как хотя бы начать решать задачу - я хз...