首页 > 解决方案 > 我正在返回渲染,但问题仍然存在

问题描述

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

但是,我收到此错误:

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

此错误位于:在 App(由 ExpoRoot 创建)中 ExpoRoot(在 renderApplication.js:45)中 RCTView(在 View.js:34)中在 View(在 AppContainer.js:106)中在 DevAppContainer(在 AppContainer.js :121) 在 RCTView (在 View.js:34) 在 View (在 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
   );
 }

}

如果您还有其他需要,请告诉我。

提前致谢。

标签: javascriptreactjsreact-native

解决方案


通过以下方式导入,例如

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

render(){

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

  return <AppNavigator />
}

推荐阅读