我正在通过创建一些项目来学习 React Native。
我卡住了,无法加载自定义字体。我遵循了博览会文档中的 this 指南。但我遇到了错误
<块引用>fontFamily "raleway-bold" 不是系统字体,尚未加载 通过 Font.loadAsync。
然后我在我的代码中使用了这个 Font.loadAsync
,但我仍然遇到同样的错误。
有什么建议吗?
import React, { useState } from 'react';
import Home from './screens/Home';
import AppLoading from 'expo-app-loading';
import * as Font from 'expo-font';
const getFonts = () =>
Font.loadAsync({
'raleway-regular': require('./assets/fonts/Raleway-Regular.ttf'),
'raleway-bold': require('./assets/fonts/Raleway-Bold.ttf'),
});
export default function App() {
const [fontsLoaded, setFontsLoaded] = useState(false);
if (fontsLoaded) {
return <Home />;
} else {
return (
<AppLoading
startAsync={getFonts}
onFinish={() => setFontsLoaded(true)}
onError={console.warn}
/>
);
}
}
答案 0 :(得分:1)
这是一个博览会客户端和 AppLoading 错误 GitHub issue
您可以尝试另一种方法,而不是使用 AppLoading,如下所示
useEffect(() => {
async function getFonts() {
await fetchFonts();
setFontLoaded(true);
}
getFonts();
}, []);
if (!fontLoaded) {
return (
<View>
<Text>Loading...</Text>
</View>
);
}