У меня в приложении довольно большая смесь вложенных Stack- и TabNavigators.
Что я хочу сделать, так это изменить количество вкладок с помощью некоторого представления, представляющего собой несколько навигаторов внутри приложения.
В настоящее время я передаю информацию о том, должна ли при запуске отображаться определенная вкладка, например:
const RootNav = RootNavigator(this.state.tabShouldBeEnabled);
return (
<View style={styles.mainContainer}>
<RootNav />
</View>
Мой RootNavigator передает эту информацию до тех пор, пока не будет достигнут TabNavigator, и будет отображаться вкладка или нет.
const RootNavigator = (userLoggedIn: boolean, coachEnabled: boolean) =>
StackNavigator(
{
...
});
Чтобы изменить состояние моего основного компонента, я рассматривал возможность передачи обратного вызова изменения состояния аналогичным образом.Но теперь мне интересно, есть ли более чистый способ, чем преобразование всех компонентов на пути в функции, которые служат только для возврата компонента с переданной функцией изменения состояния.