我正在通过创建一些项目来学习 React Native。
我卡住了,无法加载自定义字体。我关注了this来自世博会文档的指南。但是我收到一个错误
fontFamily "raleway-bold" is not a system font and has not been loaded through 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}
/>
);
}
}
最佳答案
这是一个 expo 客户端和 AppLoading 错误 GitHub issue
您可以尝试另一种方法,而不是像下面那样使用 AppLoading
useEffect(() => {
async function getFonts() {
await fetchFonts();
setFontLoaded(true);
}
getFonts();
}, []);
if (!fontLoaded) {
return (
<View>
<Text>Loading...</Text>
</View>
);
}
关于reactjs - fontFamily 不是系统字体,没有通过 Font.loadAsync 加载,而是通过 Font.loadAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66914460/