我做這個類:成員函數 - JavaScript的
import React, {Component} from 'react';
import {
View,
ActivityIndicator,
Button
} from 'react-native';
import Auth from '../api/Auth';
export default class LoginScreen extends React.Component {
constructor(props) {
super(props);
this.state = {
alreadyLoggedIn: true
};
this.redirectToHome.bind(this);
this.loginWithFacebook.bind(this);
}
componentWillMount() {
Auth.isAlreadyLoggedIn().then((res) => {
if(res == true) {
this.redirectToHome();
} else {
this.setState({alreadyLoggedIn: false});
}
});
}
redirectToHome() {
this.props.navigator.resetTo({
screen: 'homeScreen',
title: 'Meetups'
});
}
loginWithFacebook() {
Auth.loginWithFacebook().then((success) => {
if(success == true) {
this.redirectToHome();
}
}).catch((err) => {
console.error(err);
});
}
render() {
return(
<View>
{this.state.alreadyLoggedIn == false &&
<Button title="Login with Facebook" onPress={this.loginWithFacebook} />
}
{this.state.alreadyLoggedIn == true &&
<ActivityIndicator animating={this.state.alreadyLoggedIn} />
}
</View>
);
}
}
裏面的loginWithFacebook
功能,當它到達的地方調用redirectToHome
函數的行,就這樣說:
_this3.redirectToHome is not a function
我是否以錯誤的方式訪問此函數?我無法使該功能成爲靜態,並且它需要this
對象。
我該怎麼辦?
它的工作!但是,爲什麼當我使用'this.loginWithFacebook.bind(this)'時它會工作?我的意思是在此之後,我可以在loginWithFacebook函數中完成this.props,而不必在構造函數中更新它 –