我正在尝试使用expo编写一个本机应用程序,并且我开始将其启动程序代码用于具有多个标签的应用程序。然后,我创建了一个LoginScreen.js文件,如下所示:
import React, { Component } from 'react';
import { AppRegistry, TextInput, Button } from 'react-native';
export default class Login extends React.Component {
constructor(props) {
super(props);
this.state = { username: '', passwd: '', };
}
render() {
return (
<React.Fragment>
<TextInput>
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(username) => this.setState({username})}
value={this.state.username}
</TextInput>
<TextInput>
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(passwd) => this.setState({passwd})}
value={this.state.passwd}
</TextInput>
<Button>
onPress={this.verifyLogin}
title = "Login"
</Button>
</React.Fragment>
);
}
verifyLogin() {
if (this.state.username == 'test' && this.state.passwd == 'test'){
this.setState( () => ({username: 'login succeeded!'}));
}
}
}
我想用它作为用户看到的第一页,而不是默认的HomeScreen.js。我试图通过将以下行添加到我的app.json文件中来做到这一点:
"entryPoint": "screens/LoginScreen.js"
但是,当我尝试此操作时,出现以下错误消息:Module AppRegistry未注册可调用模块(调用runApplication)我已经发现了关于同一erorr消息的其他两个stackoverflow问题(Module AppRegistry is not registered callable module (calling runApplication)和{{3 }}),而我已经在第一个解决方案中尝试过该解决方案(例如,重新启动npm,添加该行
AppRegistry.registerComponent("Login", () => Login))
,这给了我以下错误消息:应用程序主程序尚未注册)。另外,我引用的两个stackoverflow页面未使用expo,而是直接使用react-native,这意味着它们引用的某些文件对我来说不存在(例如index.ios.js文件)。此外,我尝试将HomeScreen.js文件的全部内容复制并粘贴到Login.js文件中,但它仍然给我同样的错误,使我相信我还需要设置其他设置,但是我不知道是什么。摆脱这种错误的任何帮助或使首页登录页面的其他方法都将有所帮助。