react-native - 自定义字体加载在 Expo React 本机应用程序中不起作用
问题描述
在 react native expo 项目中加载和使用自定义字体时遇到问题(附加屏幕截图)。我尝试了所有方法来修复,但没有得到正确的解决方案。我发现一件令人惊讶的事情是,当创建一个新项目并通过加载在那里使用字体时,它在那里工作但在项目应用程序中不起作用。可能是什么问题?我已经尝试了重新启动服务器、系统、重新安装 expo 应用程序的所有步骤,但都没有奏效。
import React, { useState } from 'react';
import { AppLoading } from 'expo'
import * as Font from 'expo-font'
const fetchFonts = () => {
return Font.loadAsync({
'SansPro-regular': require('./assets/fonts/SourceSansPro-Regular.ttf'),
'SansPro-light': require('./assets/fonts/SourceSansPro-Light.ttf'),
'SansPro-SemiBold': require('./assets/fonts/SourceSansPro-SemiBold.ttf'),
'SansPro-Bold': require('./assets/fonts/SourceSansPro-Bold.ttf')
})
}
export default function App() {
const [fontLoaded, setFontLoaded] = useState(false)
if (!fontLoaded) {
return (
<AppLoading startAsync={fetchFonts} onFinish={() => {
setFontLoaded(true)
}}
/>
)
}
return (
<View>
<Text style = {{fontFamily: 'SansPro-Bold'}}>Welcome to react native</Text>
</View>
);
}
解决方案
你可以试试这个
expo install 'expo-font'
expo install expo-app-loading
代替它
import { AppLoading } from 'expo'
import * as Font from 'expo-font'
和
import AppLoading from 'expo-app-loading';
import * as Font from 'expo-font';
推荐阅读
- c++ - 在 C++ 程序上使用加载时或运行时动态链接时,如何在编译时解析引用?
- pandas - 使用列表列对 Pandas DataFrame 进行排序
- php - PHP file_get_contents 在 CRON 中不起作用
- user-interface - 每当我尝试在 Windows 10 上创建新项目时,我都会在 qtcreator 中看到“未找到合适的工具包”错误
- python-3.x - 即使列表 x 比 y 长,如何使 str x 列表完全匹配列表 y 中的列表?我想要与 None 配对的额外 x 值
- apache-kafka - Amazon MSK 默认配置和事务发布问题
- razor - 如何以编程方式更改文化类(调用已实现的 Switch)
- mysql - MySQL - 基于行替换字符串的一部分
- mysql - 如何在 Mysql 中使用准备语句来使用数据库
- reactjs - Webpack 5 - 导入 axios 后出现“意外令牌:punc (.)”