我正在使用本机反应和反应导航。我正在创建一个反应导航抽屉,然后使用我自己的格式在抽屉内。我正在努力让我的注销按钮正常工作。
这工作正常:
<TouchableOpacity onPress={this.props.logoutUser()}>
<Text style={{margin: 16,fontWeight: 'bold'}}>Logout</Text>
</TouchableOpacity>
但我想包含一个警报并确保用户想要退出。这行不通。它注销用户/下次我登录应用程序时,我可以看到他们已注销,但它不会触发我的应用程序的刷新,直到我手动刷新它。
<TouchableOpacity onPress={()=>
Alert.alert(
'Log out',
'Do you want to logout?',
[
{text: 'Cancel', onPress: () => {return null}},
{text: 'Confirm', onPress: () => {
this.props.logoutUser
}},
],
{ cancelable: false }
)
}>
<Text style={{margin: 16,fontWeight: 'bold'}}>Logout</Text>
</TouchableOpacity>
作为参考,这里是我如何根据用户是否登录来呈现登录屏幕与主页(props.restoreing)的变化。出于某种原因,它只更新顶部调用,我想知道抽屉或警报是否会影响我调用函数的方式:
const ChatAppComponent = props => {
if (props.restoring) {
return <ActivityIndicator style={styles.activityIndicator} />
} else {
if (props.logged) {
return <DashboardNavigator />
} else {
return <AuthScreen />
}
}
}
编辑:添加注销功能
export const logoutUser = () => {
return dispatch => {
dispatch(sessionLoading());
LoginManager.logOut();
firebaseService
.auth()
.signOut()
.then(async () => {
await GoogleSignin.revokeAccess();
await GoogleSignin.signOut();
dispatch(sessionLogout());
})
.catch(error => {
dispatch(sessionError(error.message));
});
};
};