我已经解决了这个问题。
首先,我想在下面显示我的NavigationService.js 代码:
import { NavigationActions, StackActions } from "react-navigation";
let _navigator;
function setTopLevelNavigator(navigatorRef) {
_navigator = navigatorRef;
}
function navigate(routeName, params) {
_navigator.dispatch(
NavigationActions.navigate({
routeName,
params,
}),
);
}
// add other navigation functions that you need and export them
export default {
navigate,
navigateReset,
setTopLevelNavigator,
};
然后,我添加了一些重置导航器的代码。 (这意味着当您通过下一个屏幕但再也不会通过滑动或 Android 后退按钮返回时。)
function navigateReset(routeName, params) {
_navigator.dispatch(
StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({
routeName,
params,
}),
],
}),
);
}
最后,我用新功能编辑了我的动作代码:
const loginSuccess = (dispatch, user) => {
firebase
.database()
.ref('/users/' + user.user.uid)
.once('value')
.then((snapshot) => {
dispatch({
type: LOGIN_USER_SUCCESS,
payload: user,
myUser: {
uid: user.user.uid,
email: user.user.email,
name: snapshot.val().displayName,
groups: snapshot.val().groups,
},
});
});
dispatch(() => {
NavigationService.navigateReset('Main'); // Edited code.
});
console.log('LOGINSUCCESS --> OK!');
};
呸呸呸!恭喜!现在,您在登录后永远不会返回登录屏幕。