reactjs - fontFamily 不是系统字体,没有通过 Font.loadAsync 加载,而是通过 Font.loadAsync

标签 reactjs react-native fonts

我正在通过创建一些项目来学习 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/

相关文章:

react-native - 是否可以在 React Native 的单独线程中预渲染复杂组件?

javascript - 如何在使用 ScrollView 的 native react 中实现 scrollspy?

android - 如何在我的 React-Native 开发环境中指定 Metro Bundler IP 地址?

javascript - react 三元运算符错误

javascript - 即使 Expected 不等于 Received,Jest 仍为绿色

javascript - 如何在启动时使用异步存储数据渲染 React Native 组件?

css - 如何向自定义 magento 主题添加新字体?

javascript - react-flux 应用程序的可重用性/可扩展性问题

ios - 奇怪的 "Crash"字体添加到 Info.plist

php - 相同的 CSS 在两个页面中显示不同的字体