我使用 Facebook SDK 创建了一个登录按钮。用户登录后,应用程序将导航到第二个屏幕 (NavigatorIOS)。从第二个屏幕,用户可以使用导航(返回按钮)返回登录屏幕。
如果用户已经登录,如何防止用户返回登录屏幕?
index.ios.js
import React, { Component } from 'react'
import {
AppRegistry,
StyleSheet,
NavigatorIOS
} from 'react-native'
import LoginView from './src/login-view'
class MyApp extends Component {
render() {
return (
<Provider store={store}>
<NavigatorIOS
initialRoute={{
component: LoginView,
title: 'MyApp',
index: 0
}}
/>
</Provider>
);
}
}
AppRegistry.registerComponent('MyApp', () => MyApp);
登录视图
import React, {Component} from 'react'
import {
View,
Text,
StyleSheet,
TouchableHighlight,
} from 'react-native'
import CategoryView from './category-view'
import {LoginButton, AccessToken, GraphRequest, GraphRequestManager} from 'react-native-fbsdk'
class LoginView extends Component {
goToCategoryView = () =>
this.props.navigator.push({
title: 'Categories',
component: CategoryView,
})
render(){
return(
<View style={styles.container}>
<LoginButton
readPermissions={['public_profile','email']}
onLoginFinished={
(error, result) => {
if (error) {
console.log('login has error: ', result.error)
} else if (result.isCancelled) {
console.log('login is cancelled.')
} else {
AccessToken.getCurrentAccessToken().then((data) => {
this.goToCategoryView()
})
}
}
}
onLogoutFinished={() => {console.log('logged out')}} />
</View>
)
}
}
export default LoginView