Дело в том, что в приложении используется как обычный useNavigator, благодаря которому осуществляется навигация между основными экранами, так и useTopTabNavigator, благодаря которому происходит навигация между "подэкранами" настроек. Задача состоит в том, чтобы сделать навигацию из иконки, находящейся на главном экране на определённый "подэкран" из подэкранов настроек.
Для этого в главном экране я добавил:
const {navigate} = useNavigation();
и для нужной иконки передал:
onPress={() => navigate('SettingsDream')}
__________________________
В результате навигация осуществляется лишь при условии, что у меня предварительно открыт экран настроек, но ничего не происходит, если экран настроек закрыт(видео работы прилагается). Может есть у кого-нибудь идеи, каким образом мне осуществить задуманное без таких вот условностей?
тебе нужна делать navigate('Name of stack', {screen: 'name of screen'})
Звучит просто гениально, спасибо! Правда я не совсем понял чем является “Name of stack”. Я попробовал передать в этот параметр название самого useTopTabNavigator, но это не помогло - переход не осуществляется вообще.
Понял. Сам основной экран настроек. Буду пробовать.)
К сожалению, данная запись не сработала.( Поведение перехода остается прежним - работает лишь при условии уже открытых настроек. onPress={() => navigate('Settings', {screen: 'SettingsDream'})}
используешь теже названия что и в названии экранов?
https://reactnavigation.org/docs/nesting-navigators/#navigating-to-a-screen-in-a-nested-navigator
Да, вот прописанное название для настроек: const screens = languages => [ { name: 'Settings', component: SettingsScreen, ... ________________ И для "подэкрана": { name: 'SettingsDream', component: SettingsStatisticsScreen, ...
const screens = languages => [ откуда такое написание?
почему не через Navigator и Screen?
Это было сделано до меня.) Полагаю, человеку, это написавшее, было таким образом удобнее впихнуть сюда смену языка экранов./
Обсуждают сегодня