[react-native] react-navigation에서 createDrawerNavigator를 이용해서 side menu를 만들고 있습니다.


(김규태) #1

현재 서버측과 jwt 까지는 완료하여 로그인/ 로그아웃 여부는 AsyncStorage를 이용해서 확인이 가능합니다.

로그인 한 경우 side menu에 로그 아웃 기능을 추가하고 싶고
로그인이 되지 않은 경우 side menu에 로그인 기능을 추가하고 싶습니다.

createDrawerNavigator를 이용해서 사이드 메뉴를 구성했는데
아래 코드로는 실행한 경우에만 로그인, 로그아웃 여부에 따라 보여지는 메뉴를
다르게 만들 수 밖에 없더라고요…
실시간으로 로그인/로그아웃 여부에 따라 사이드 메뉴 출력 메뉴를 다르게 하고 싶습니다.

어떻게 해야지 render기능처럼 실시간 로그인 및 로그아웃 에 따라 사이드 메뉴를 바꿀 수 있는지
고수분들의 도움이 필요합니다.

[코드는 다음과 같습니다]
//side bar
const dashboardStack = () =>{

const userId = AsyncStorage.getItem(userId);

if(userId!=null){
return createDrawerNavigator({
home: bottomTabNavigator,
login: LoginContainer
})
}
else{
return createDrawerNavigator({
home: bottomTabNavigator,
})
}

}


(이종은(Jong Lee)) #2

AsyncStorage.getItem(); 함수는 이름에서 알 수 있듯이 비동기 동작으로 promise를 리턴하는 함수입니다. 저렇게 사용하시면 userId에는 promise가 저장됩니다.