Я пытаюсь условно отобразить мое приложение на основе редукции, если пользователь вошел в систему. Ниже приведена соответствующая сокращенная версия моего кода:
let isLoggedIn = false;
export default function App() {
console.log('App executing...');
console.log('isLoggedIn: ', isLoggedIn);
return (
<Provider store={store}>
<NavigationContainer>
{isLoggedIn ? ContactsTab() : Login()}
</NavigationContainer>
</Provider>
);
}
store.subscribe(() => {
// Set isLoggedIn to true if token is received and reinvoke App()
if (store.getState().user.token) {
isLoggedIn = true;
App();
}
});
Приложение запускается с ведения журнала консоли isLoggedIn: false и отображение Login () (как и ожидалось). Когда я вхожу в свой телефон с использованием правильных учетных данных, App () повторно вызывается для ведения журнала консоли isLoggedIn: true (как и ожидалось), но он по-прежнему отображает Login () . Если я установлю isLoggedIn = true внутри функции приложения, приложение успешно начнет отображать ContactsTab () .
Что здесь происходит? Почему мое приложение не перемещается в ContactsTab () , когда значение isLoggedIn успешно меняется на true ? Как я могу это исправить?
Спасибо, что читаете вместе. Последние два дня я пытался отлаживать это безуспешно, поэтому любая помощь будет принята с благодарностью!