元素类型无效:应为字符串(用于内置组件)或类/函数(用于复合组件),但得到的却是:object.React Native



所以我一直在做很多研究,为什么这不起作用,但什么都找不到。有人知道这个错误是怎么回事吗?

Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.

Check the render method of `App`.

This error is located at:
in App (created by ExpoRoot)
in ExpoRoot
in RCTView (created by View)
in View (created by AppContainer)
in RCTView (created by View)
in View (created by AppContainer)
in AppContainer
- node_modulesexpobuildlogsLogSerialization.js:160:14 in _captureConsoleStackTrace
- node_modulesexpobuildlogsLogSerialization.js:41:26 in serializeLogDataAsync
- ... 9 more stack frames from framework internals

这是我的App.js:

import * as Icon from '@expo/vector-icons'
import * as AppLoading  from 'expo-app-loading'
import {Asset} from 'expo-asset'
import * as Font from 'expo-font'
import React from 'react'
import { StatusBar, StyleSheet, View } from 'react-native'
import AppNavigator from './navigation/AppNavigator'
export default class App extends React.Component {
state = {
isLoadingComplete: false,
}
render() {
if (!this.state.isLoadingComplete && !this.props.skipLoadingScreen) {
return (
<AppLoading
startAsync={this._loadResourcesAsync}
onError={this._handleLoadingError}
onFinish={this._handleFinishLoading}
/>
)
} else {
return (
<View style={styles.container}>
<StatusBar hidden />
<AppNavigator />
</View>
)
}
}
_loadResourcesAsync = async () => {
return Promise.all([
Asset.loadAsync([
require('./assets/images/splash.png'),
require('./assets/images/icon.png'),
]),
Font.loadAsync({
//This is the font that we are using for our tab bar
...Icon.MaterialIcons.font,
...Icon.MaterialCommunityIcons.font,
...Icon.FontAwesome.font,
...Icon.Feather.font,
}),
])
}
_handleLoadingError = error => {
// In this case, you might want to report the error to your error
// reporting service, for example Sentry
console.warn(error)
}
_handleFinishLoading = () => {
this.setState({ isLoadingComplete: true })
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
},
})

我已经安装了所有必要的模块,重置了缓存,检查了导入语句,但似乎什么都不起作用。

请遵循博览会文档:https://docs.expo.io/versions/latest/sdk/app-loading.

更换

import * as AppLoading from 'expo-app-loading'

通过

import AppLoading from 'expo-app-loading'

以解决您的问题。

最新更新