Я решил эту проблему.
Прежде всего, я хочу показать мои 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!');
};
Таа таа! Congrulations! Теперь вы никогда не возвращаетесь к экрану входа в систему после входа в систему.