Ich bin etwas neu zu verwenden native reagieren und ich versuche, Facebook Login mit meiner App mit der Reaktion native fbsdk zu implementieren.Reagieren Native FBSDK onLoginFinished Push auf neuen Bildschirm
Ich habe es an den Punkt gebracht, wo es um Berechtigungen aus dem Facebook-Profil des Benutzers fragen wird, dann zurück zur App mit einer Erfolgsmeldung. Anstatt die Warnung onLoginFinished anzuzeigen, möchte ich auf einen neuen Bildschirm wechseln.
Dies ist mein Login-Button-Code in der Haupt Konstruktor Klasse:
constructor(props){
super(props);
this.goToNewPage = this.goToNewPage.bind(this);
const infoRequest = new GraphRequest(
'/me',
{parameters: {
fields: {
string: 'email,first_name,last_name,id,gender' // what you want to get
}
}},
this._responseInfoCallback,
);
Login = React.createClass({
render: function() {
return (
<View >
<LoginButton
navigator={this.props.navigator}
style = {{marginLeft:55, marginRight:55, height:50, width:300}}
onLoginFinished={
(error, result) => {
if (error) {
alert("Login failed with error: " + result.error);
} else if (result.isCancelled) {
alert("Login was cancelled");
} else {
alert("Login was successful with permissions: " + result.grantedPermissions)
new GraphRequestManager().addRequest(infoRequest).start();
this.goToNewPage;
}
}
}
onLogoutFinished={() => alert("User logged out")}
/>
</View>
);
}
});
} //closes constructor
_responseInfoCallback(error: ?Object, result: ?Object) {
if (error) {
alert('Error fetching data: ' + error.toString());
} else {
alert('Success fetching data: ' + result.toString());
console.log(result);
}
}
goToNewPage(){
console.log("Hello from go to new page function");
this.props.navigator.push({
id: 'newPage',
name: 'Going To New Page',
});
}
Aber nach dem Erfolg Warnungen angezeigt werden, ist es nicht auf die neue Seite schieben. Es scheint so zu sein, dass.props.navigator in meiner Login-Klasse nicht erkannt wird und ich bin mir nicht sicher warum. Jede mögliche Hilfe würde sehr geschätzt werden
Ich mache das gleiche wie Sie auf meiner App, der Unterschied ist, dass ich eine andere Methode aufrufen, die an die Komponente gebunden ist. Ich habe hier nicht versucht, aber wenn Sie eine andere Methode erstellen und binden Sie es an die Komponente und dann rufen Sie den Navigator es könnte funktionieren. –