javascript - 无法找到错误的来源;元素类型无效:应为字符串
问题描述
我的应用程序屏幕。js返回
[未处理的承诺拒绝:错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。]
除了“渲染方法”之外,错误没有给我问题的位置,你能看到错误在哪里,你能帮我找到问题的根源吗?非常感谢
import Splash from './src/components/Splash';
import React from "react";
import {
View,
Text,
StatusBar,
Image,
ActivityIndicator,
} from "react-native";
import MainStackNavigator from "./Navigation/StackNavigator";
import styles from "./assets/styles";
import {
retrieveAppLang,
userSessionActive
} from "./src/common/Preferences";
import i18n from "./src/i18n";
export default class App extends React.Component {
constructor(props) {
super(props);
Text.defaultProps = Text.defaultProps || {};
Text.defaultProps.allowFontScaling = false;
this.state = {
isFirstConnection: true,
status: 0,
};
}
async UNSAFE_componentWillMount() {
let lang = await retrieveAppLang();
let isConnected = await userSessionActive();
if (lang.length == 2) {
i18n.changeLanguage(lang);
}
if (isConnected === true && this.props && this.props.navigation) {
this.props.navigation.navigate("BottomTabNavigator");
}
}
async componentDidMount() {
const data = await this.performTimeConsumingTask();
if (data !== null) {
this.setState({
isFirstConnection: false,
status: 1,
});
}
}
performTimeConsumingTask = async () => {
return new Promise((resolve) =>
setTimeout(() => {
resolve("result");
}, 750)
);
};
render() {
if (this.state.status == 1) {
if (this.state.isFirstConnection) {
return <Splash />;
} else {
return <MainStackNavigator screenProps={'Authentication'} />;
}
}
return (
<View style={[styles.container, styles.containerCentered]}>
<StatusBar hidden={true} />
<View style={styles.subContainer}>
<Image
style={styles.logo}
source={require("./assets/images/logo.png")}
/>
<ActivityIndicator size="large" color="#43300E" />
<Text>{i18n.t("app.loading") + "..."}</Text>
</View>
</View>
);
}
}
解决方案
推荐阅读
- java - 方法是否与对象一起实例化?
- django - docker-entrypoint-initdb.d 中的脚本 sql 未执行
- angular - 如何在Angular中为switch case编写单元测试用例?
- three.js - 如何在不使用 Threejs 的情况下使用 WebGL 加载 glb 文件
- java - 如何使用租户 ID、客户端 ID 和客户端密码连接和管理 Azure Data Lake Storage Gen2 中的目录和文件?
- python - 如何在给定网站中抓取表格?
- java - Java中的Csv到Json转换
- c# - 获取控件中 ViewModel 中使用的 BindableProperty 的值?
- reactjs - 有条件地要求使用 React Native 和 TypeScript 的图像资产的正确方法是什么?(得到 eslint 错误)
- javascript - 扩大未捕获的 AppSync 订阅(承诺中)