我正在返回渲染但问题仍然存在

时间:2020-12-21 04:42:25

标签: javascript reactjs react-native

嗨,我是 React Native 的新手。 无论如何,我的问题是我正在尝试更改文本的字体,并希望确保在字体加载后,我才希望加载屏幕结束。

但是,我收到此错误:

<块引用>

错误:App(...):渲染没有返回任何内容。这通常意味着缺少 return 语句。或者,不渲染任何内容,返回 null。

<块引用>

此错误位于: 在应用程序中(由 ExpoRoot 创建) 在 ExpoRoot(在 renderApplication.js:45) 在 RCTView 中(在 View.js:34) 在视图中(在 AppContainer.js:106) 在 DevAppContainer 中(在 AppContainer.js:121) 在 RCTView 中(在 View.js:34) 在视图中(在 AppContainer.js:132) 在 AppContainer 中(在 renderApplication.js:39)

这是我的 App.js

import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { render } from 'react-dom';
import { Button, StyleSheet, Text, View } from 'react-native';
import AppNavigator from './src/navigation/Navigator';
import * as Font from 'expo-font';
import {AppLoading} from 'expo-app-loading';

export default class App extends React.Component {
  state = {
    isFontLoaded : false
  }

  async componentDidMount(){
    await Font.loadAsync({
      "SemiBold" : require('./src/fonts/Montserrat-Regular.ttf'),
      "Medium" : require('./src/fonts/Montserrat-Medium.ttf'),
      "Regular" : require('./src/fonts/Montserrat-Regular.ttf')
    });
    this.setState({isFontLoaded:true})
  }

 render(){

   return (
     (this.state.isFontLoaded === true) ? (<AppNavigator/>):(AppLoading)
   // AppLoading
   );
 }

}

如果您还有什么需要,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:1)

通过如下方式导入

import AppLoading from 'expo-app-loading'; // this way

render(){

  if(!this.state.isFontLoaded){
    return <AppLoading />
  }

  return <AppNavigator />
}