Итак, я сделал компонент, который делал это довольно легко несколько раз назад.Это работает с Expo, я не знаю, что такое vanilla Reaction-native.
в начале вашего приложения:
import { Font, Asset } from 'expo'
async initFont() {
try {
await Font.loadAsync({
'Bariol': require('src/assets/font/Bariol_Regular.otf'),
'Bariol Bold': require('src/assets/font/Bariol_Bold.otf'),
})
this.setState({ fontReady: true })
} catch (e) {
console.log(e)
}
}
Затем необходимо создать файл компонента, например text.js
содержащий этот код:
export default function (props) {
let font = { fontFamily: 'Bariol' }
if (props.bold) {
font = { fontFamily: 'Bariol Bold' }
}
const { bold, style, children, ...newProps } = props
return (
<Text {...newProps} style={[Style.text, props.style, font]}>
{props.children}
</Text>
)
}
Наконец, в любой другой компонент / страницу просто импортируйте MyText:
import Text from 'path/to/text.js'
используйте его как обычный Text
компонент:
<Text bold>Hello World!</Text>
Даже если это решение выглядит немного сложнее, чем другие, его легче использовать, когда настройки выполнены, поскольку вам просто нужно импортировать текст.