【发布时间】:2019-11-12 16:36:58
【问题描述】:
我正在使用 react-native 创建一个应用程序,我想使用 createStackNavigator 来拥有三个屏幕。我有一个按钮,我想用它来将用户带到第三个屏幕。
这是我的 createStackNavigator 代码
const RootStack = createStackNavigator({
Login: {
screen: LoginActivity
},
Profile: {
screen: ProfileActivity
},
MakeAccount: {
screen: MainProject
}
});
const AppContainer = createAppContainer(RootStack);
export default AppContainer;
这是导航到页面/屏幕的按钮的代码
<Button title="Click Here To Create an Account" onPress={() => this.props.navigation.navigate('MakeAccount')} color="#2196F3" />
当我使用 Xcode 在 iso 模拟器上运行我的应用程序时,我收到以下消息:
我不知道为什么会这样……
另外,这是我的MainProject 课程:
class MainProject extends Component {
constructor(props) {
super(props)
this.state = {
UserName: '',
UserEmail: '',
UserPassword: ''
}
}
UserRegistrationFunction = () => {
const { UserName } = this.state;
const { UserEmail } = this.state;
const { UserPassword } = this.state;
fetch('http://ip/user_registration.php', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: UserEmail,
password: UserPassword
})
}).then((response) => response.json())
.then((responseJson) => {
Alert.alert(responseJson);
}).catch((error) => {
console.error(error);
});
}
render() {
return (
<View style={styles.MainContainer}>
<Text style={{ fontSize: 20, color: "#000", textAlign: 'center', marginBottom: 15}}>User Registron Form</Text>
<TextInput
placeholder="Enter User Name"
onChangeText={UserName => this.setState({UserName})}
underlineColorAndroid='transparent'
style={styles.TextInputStyleClass}
/>
<TextInput
placeholder="Enter User Email"
onChangeText={UserEmail => this.setState({UserEmail})}
underlineColorAndroid='transparent'
style={styles.TextInputStyleClass}
/>
<TextInput
placeholder="Enter User Password"
onChangeText={UserPassword => this.setState({UserPassword})}
underlineColorAndroid='transparent'
style={styles.TextInputStyleClass}
secureTextEntry={true}
/>
<Button title="Click Here To Register" onPress={this.UserRegistrationFunction} color="#2196F3" />
</View>
);
}
}
export default MainProject;
【问题讨论】:
-
它是一个类组件。类 MainProject 扩展组件
-
我已将课程代码添加到我的问题中
-
我也导入了组件 import MainProject from './account';
-
我对您的问题的建议是:编辑它以专注于显示
MainProject类以及您的导入和导出,删除有关按钮的部分,因为您的问题与按钮单击或堆栈无关创建,它是关于组件和导入/导出的,基于您显示的错误。有一个更集中的问题,也许有更多专业知识的其他人可以在这里帮助我们 -
补充一下 Calvin 的观点,可能是因为您的导入语句(应该与
createStackNavigator在同一个文件中)配置不正确。请注意,导入路径是相对于它所在的文件的。 - 因此,如果路径是./account,则意味着MainProject位于相对于createStackNavigator所在的子目录中。
标签: javascript react-native react-native-navigation