Javascript 无法读取属性';道具';未定义的
你得对我宽容点。。很新的反应 我有一段代码,非常简单:Javascript 无法读取属性';道具';未定义的,javascript,reactjs,react-native,Javascript,Reactjs,React Native,你得对我宽容点。。很新的反应 我有一段代码,非常简单: export default class signup extends Component { constructor(props){ super(props); this.state = { loaded: true, email: '', password: '' }; } signup(
export default class signup extends Component {
constructor(props){
super(props);
this.state = {
loaded: true,
email: '',
password: ''
};
}
signup(){
this.setState({
loaded: false
});
firebaseApp.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then(function() {
this.props.navigator.push({
component: Login
});
}, function(error) {
// An error happened.
var errorCode = error.code;
var errorMessage = error.message;
console.log("ERROR WITH SIGNIN")
console.log( errorMessage )
});
}
goToLogin(){
this.props.navigator.push({
component: Login
});
}
render() {
return (
<View style={styles.container}>
<Header text="Signup" loaded={this.state.loaded} />
<View style={styles.body}>
<TextInput
style={styles.textinput}
onChangeText={(text) => this.setState({email: text})}
value={this.state.email}
placeholder={"Email Address"}
/>
<TextInput
style={styles.textinput}
onChangeText={(text) => this.setState({password: text})}
value={this.state.password}
secureTextEntry={true}
placeholder={"Password"}
/>
<Button
text="Signup"
onpress={this.signup.bind(this)}
button_styles={styles.primary_button}
button_text_styles={styles.primary_button_text} />
<Button
text="Got an Account?"
onpress={this.goToLogin.bind(this)}
button_styles={styles.transparent_button}
button_text_styles={styles.transparent_button_text} />
</View>
</View>
);
}
}
AppRegistry.registerComponent('signup', () => signup);
但是,当我单击“注册”按钮时,它会抛出错误
无法读取未定义的属性“props”
我想我可以把同样的代码块放在它上面运行:
this.props.navigator.push({
component: Login
});
但是,它会导致错误。我有点困惑为什么会发生这种情况,因为它在另一个函数中工作得很好。。我确信这只是我和我对英语的缺乏理解。。
谢谢大家 您需要使用bind或arrow函数
firebaseApp.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then(function() {
this.props.navigator.push({
component: Login
});
}.bind(this), function(error) {
// An error happened.
var errorCode = error.code;
var errorMessage = error.message;
console.log("ERROR WITH SIGNIN")
console.log( errorMessage )
});
或
您在按钮中使用的onpress事件不应该像onpress一样。这可能是你的问题的原因
firebaseApp.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then(function() {
this.props.navigator.push({
component: Login
});
}.bind(this), function(error) {
// An error happened.
var errorCode = error.code;
var errorMessage = error.message;
console.log("ERROR WITH SIGNIN")
console.log( errorMessage )
});
firebaseApp.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then(() => {
this.props.navigator.push({
component: Login
});
}, function(error) {
// An error happened.
var errorCode = error.code;
var errorMessage = error.message;
console.log("ERROR WITH SIGNIN")
console.log( errorMessage )
});