【发布时间】:2018-11-23 12:40:35
【问题描述】:
我定义了道具_navigateToRegister,但是当我按下按钮时没有任何反应。 而且我有这个错误警告:警告:失败的道具类型道具“onPress”在“按钮”中被标记为必需,但其值为“未定义” 哪里错了?
app.js
import React, { Component } from 'react';
import {
AppRegistry
} from 'react-native';
import {
StackNavigator,
} from 'react-navigation';
import { createStackNavigator } from 'react-navigation';
import Login from './src/screens/Login';
import Secured from './src/screens/Secured';
import Register from './src/screens/Register';
const LifeStorm = createStackNavigator({
Login: { screen: Login },
Register: { screen: Register },
Secured: { screen: Secured },
});
export default class ReactNativeStormpath extends Component {
state = {
isLoggedIn: false
}
render() {
if (this.state.isLoggedIn)
return <Secured
onLogoutPress={() => this.setState({isLoggedIn: false})}
/>;
else
return <Login
onLoginPress={() => this.setState({isLoggedIn: true})}
/>;
}
}
AppRegistry.registerComponent("App", () => App);
login.js
import React, { Component } from "react";
import { ScrollView, Text, TextInput, View, Button } from "react-native";
export default class Login extends Component {
navigateToRegister = () => {
this.props.navigation.navigate("Register");
};
render() {
return (
<ScrollView style={{ padding: 20 }}>
<Text style={{ fontSize: 27 }}>Login</Text>
<TextInput placeholder="Username" />
<TextInput placeholder="Password" />
<View style={{ margin: 7 }} />
<Button onPress={this.props.onLoginPress} title="Submit" />
<Button onPress={this.props._navigateToRegister} title = "Register" />
</ScrollView>
);
}
}
module.exports = Login;
注册.js
import React, { Component } from 'react';
import {
ScrollView,
Text,
TextInput,
View,
Button
} from 'react-native';
export default class Register extends Component {
render() {
return (
<ScrollView style={{padding: 20}}>
<Text
style={{fontSize: 27}}>
Register
</Text>
<TextInput placeholder='E-Mail' />
<TextInput placeholder='Username' />
<TextInput placeholder='Password' />
<TextInput placeholder='Confirm Password' />
<View style={{margin:7}} />
<Button
onPress={() => navigate("Login")}
title="Submit"
/>
</ScrollView>
)
}
}
P.S 我是 React Native 的新手。
【问题讨论】:
-
登录:您只需要: 。因为你是从这个类而不是从父类访问函数。
标签: javascript reactjs react-native