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

Javascript 我正在返回渲染,但问题仍然存在,javascript,reactjs,react-native,Javascript,Reactjs,React Native,嗨,我是一个比较新的本地人。 无论如何,我的问题是,我正在尝试更改文本的字体,并希望确保在加载字体后,才希望加载屏幕结束 但是,我遇到了以下错误: 错误:应用程序(…):渲染未返回任何内容。这通常意味着缺少返回语句。或者,要不呈现任何内容,请返回null 此错误位于: 应用内(由Expoot创建) 在expoot中(在renderApplication.js:45处) 在RCTView中(在View.js:34) 在视图中(位于AppContainer.js:106) 在DevAppContai

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

但是,我遇到了以下错误:

错误:应用程序(…):渲染未返回任何内容。这通常意味着缺少返回语句。或者,要不呈现任何内容,请返回null

此错误位于: 应用内(由Expoot创建) 在expoot中(在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
   );
 }
从“世博会状态栏”导入{StatusBar};
从“React”导入React;
从'react dom'导入{render};
从“react native”导入{按钮、样式表、文本、视图};
从“./src/navigation/Navigator”导入AppNavigator;
从“expo字体”导入*作为字体;
从“expo应用程序加载”导入{AppLoading};
导出默认类App扩展React.Component{
状态={
isFontLoaded:错误
}
异步组件didmount(){
等待Font.loadAsync({
“半黑体”:要求('./src/font/Montserrat Regular.ttf'),
“Medium”:要求('./src/font/Montserrat Medium.ttf'),
“常规”:要求('./src/font/Montserrat Regular.ttf')
});
this.setState({isFontLoaded:true})
}
render(){
返回(
(this.state.isFontLoaded==true)?():(正在加载)
//加满
);
}
}

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


提前感谢。

按如下方式导入

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

render(){

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

  return <AppNavigator />
}
从“expo应用程序加载”导入应用程序加载;//这边
render(){
如果(!this.state.isfontload){
返回
}
返回
}

AppLoading
是JSX元素吗?如果是这样的话,它应该用
@choz包装。我已经尝试过这个方法,但得到了以下错误:@choz错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记了从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。检查
App
的渲染方法。然后检查
expo-App-loading
文件,或者至少将其发布到此处。expo-App-loading是一个库,我到底应该查找什么?感谢您的回复,但是,我现在收到了以下错误:元素类型无效:需要字符串(对于内置组件)或类/函数(用于复合材料组件)但是得到:未定义。您可能忘记了从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。请检查
App
的呈现方法。此错误通常在导入无效时发生。请在
import AppNavigator from./src/navigation/Navigator';
im中检查导入端口{AppLoading}从“expo app loading”;
嘿,我做了一些研究,我想导入应用程序的正确方法是,AppNavigator工作得很好,因为没有应用程序加载,应用程序按预期运行。但是,现在,我在更新的应用程序加载导入时遇到以下错误:'警告:无法对未安装的组件执行反应状态更新。this为no op,但表示应用程序内存泄漏。若要修复,请取消componentWillUnmount方法中的所有订阅和异步任务。”