我正在尝试根据用户是否登录来有条件地呈现我的redux应用。我的代码的相关和压缩版本如下:
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()。
这是怎么回事当isLoggedIn的值成功更改为true时,为什么我的应用程序没有移至ContactsTab()?我怎样才能解决这个问题?
感谢您的阅读。在过去的2天里,我一直在尝试进行调试,但是没有成功,因此,非常感谢您的帮助!