你好,伙计们!
我和这个储存库合作,无法启动世博会项目。以下是一个完整的错误:
错误:元素类型无效:需要一个字符串(用于内置组件)或一个类/函数(用于组合组件),但got:未定义。您可能忘记从定义在其中的文件中导出组件,或者您可能混淆了默认导入和命名导入。
检查App
的呈现方法。
package.json
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"@expo-google-fonts/montserrat": "^0.1.0",
"@react-native-community/masked-view": "^0.1.11",
"@react-native-community/viewpager": "^5.0.11",
"@react-navigation/bottom-tabs": "^5.11.11",
"@react-navigation/native": "^5.9.4",
"@react-navigation/stack": "^5.14.5",
"expo": "~41.0.1",
"expo-linear-gradient": "^9.1.0",
"expo-status-bar": "~1.0.4",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz",
"react-native-gesture-handler": "^1.10.3",
"react-native-reanimated": "^2.2.0",
"react-native-safe-area-context": "^3.2.0",
"react-native-screens": "^3.3.0",
"react-native-web": "~0.13.12"
},
"devDependencies": {
"@babel/core": "^7.9.0"
},
"private": true
}
App.js
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import ChatStackNavigator from './src/navigations/Navigator';
import {
useFonts,
Montserrat_700Bold,
Montserrat_600SemiBold,
Montserrat_800ExtraBold
} from '@expo-google-fonts/montserrat';
import { AppLoading } from 'expo'
const App = () => {
let [fontsLoaded] = useFonts({
Montserrat_700Bold,
Montserrat_600SemiBold,
Montserrat_800ExtraBold
});
if(!fontsLoaded) {
return <AppLoading/>
}
return(
<NavigationContainer>
<ChatStackNavigator/>
</NavigationContainer>
)
}
export default App;
更新!
我重新安装了node_modules
Node.js Command Prompt
转到cd
中的项目目录yarn
或npm
(我使用npm
)安装rimraf
npm install rimraf -g
rimraf node_modules
npm install
重新安装所有模块错误:元素类型无效:需要一个字符串(用于内置组件)或一个类/函数(用于组合组件),但got:未定义。您可能忘记从定义在其中的文件中导出组件,或者您可能混淆了默认导入和命名导入。
检查App
的呈现方法。
以及控制台中的这个错误
C:/./DatingApp/App.js试图导入错误:'AppLoading‘不是从'expo’导出的。
我转到App.js
并看到下面的代码:
import { AppLoading } from 'expo'
..。
if(!fontsLoaded) {
return <AppLoading/>
}
这是不正确的使用AppLoading
。我找到了答案,这里。所以,我该怎么做:
npm
,我做:npm install expo-app-loarding
import { AppLoading } from 'expo'
替换为import AppLoading from 'expo-app-loading';
expo start --web
我在控制台上又犯了一个错误,现在我知道如何解决它了。
更新2
npm install expo-app-loading
不起作用。
我试过expo install expo-app-loading
,它也不起作用。
我从App.js
中删除了这些代码行
1.
import AppLoading from 'expo-app-loading';
if(!fontsLoaded) {
return <AppLoading/>
}
现在应用程序开始工作了!
发布于 2021-06-05 11:40:18
您是否尝试过删除节点模块并重新安装项目?有时我会犯这个错误,这就解决了它。
https://stackoverflow.com/questions/67852735
复制相似问题