0

我的字体有问题,我无法修复错误“fontFamily "FredokaOne_400Regular" 不是系统字体并且尚未通过 Font.loadAsync 加载。”

我已经尝试了几种堆栈溢出的方法,我通常会很好地异步声明我的书写字体并遵循文档但没有成功。

我不知道这是否与 Firebase 与用户的连接或动画启动画面有冲突

这就是我告诉我的程序我需要一种字体的方式:

  constructor(props) {
    super(props);
    this.state = {
      loaded: false,
    }
    this.states = {
      fontLoaded: false
    }
  }

  async getFonts() {
    await Font.loadAsync({
      'FredokaOne_400Regular': require('./assets/fonts/FredokaOne-Regular.ttf')
    }).then(() => {
      this.setState({ fontLoaded: true });
    });
  }

  async componentDidMount() {
    this.getFonts()
  }

然后我有第二个功能,用于安装与用户与 Firebase 的连接相关的屏幕

  componentDidMount() {
    firebase.auth().onAuthStateChanged((user) => {
      if (!user) {
        this.setState({
          loggedIn: false,
          loaded: true,
        })
      } else {
        this.setState({
          loggedIn: true,
          loaded: true,
        })
      }
    })
  }

然后我像这样显示我的登录页面

  render() {  
    const { loggedIn, loaded, fontLoaded} = this.state;

    if (!loggedIn) {
      return (
        <AnimatedSplash
        translucent={true}
        isLoaded={loaded}
        logoImage={require("./assets/images/logo.png")}
        backgroundColor={"#ffff"}
        logoHeight={150}
        logoWidth={150}
      >
        <NavigationContainer >
             ...

我尝试在几个地方声明字体初始化,但它总是导致一个问题:要么启动画面保持冻结,我们无法访问登录页面,要么显示了登录页面但仍然显示错误。

但是字体显示正确

4

0 回答 0