React Navigation - Экран условного рендеринга на основе значения контекста в маршрутах. js - PullRequest
1 голос
/ 17 марта 2020

У меня проблема с условным рендерингом в RNavigation,

, скажем, у меня есть 3 вкладки (Главная, Загрузить, Профиль).

Мне нужно обработать около Upload screen, если пользователь уже залогинен или нет,

на самом деле я создал свой собственный контекст, содержащий isLoggedin, но я не знаю, как его использовать в Routes.js

const TabNavigator = createMaterialTopTabNavigator({
  Home:{ screen:Home },
  Upload:{ screen:Upload }, // here i need to handle if user not logged in yet i want to use screen:PleaseLogin
  //Upload:this.context.User.isLoggedin ? {screen:Upload} : {screen:PleaseLogin}
  Profile:{ screen:Profile },
})

I думал, что этот случай отличается от Auth Flow , который использовал createSwitchNavigator

как я могу этого достичь?

Редактировать:

Я не знаю не знаю, как добавить this.context в Routes.js, потому что Routes.js не является react component

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

вы можете добавить глобальную переменную, где this.context.User.isLoggedin собирается установить

global.isLoggedin = this.context.User.isLoggedin;

, затем

Upload:{ global.isLoggedin ? Upload : PleaseLogin  },
0 голосов
/ 17 марта 2020

Вы можете попробовать это

Upload:{ screen:this.context.User.isLoggedin ? Upload : PleaseLogin  },
...