fontFamily 不是系统字体,尚未通过 Font.loadAsync 加载,但使用 Font.loadAsync
fontFamily is not a system font and has not been loaded through Font.loadAsync But with Font.loadAsync
我正在通过创建一些项目来学习 React Native。
我卡住了,无法加载自定义字体。我遵循了 expo 文档中的 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>
);
}
我正在通过创建一些项目来学习 React Native。
我卡住了,无法加载自定义字体。我遵循了 expo 文档中的 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>
);
}