Окей, в основном у вас есть 2 варианта для управления этим, во-первых, это проверка состояния навигации, но, как я выяснил, он работает только на устройстве IOS, android ничего не делает.
Этот фрагмент кода перемещается на первый экран из этого стека-навигатора
<Tab.Screen name={`DeviceNavigatorTab`} component={DeviceNavigator} options={{
tabBarIcon: ({tintColor}) => <Image source={require('../../images/feather_home-menu.png')} style={{width: 26, height: 26, tintColor}}/>,
}} listeners={({ navigation, route }) => ({
tabPress: e => {
if (route.state && route.state.routeNames.length > 0) {
navigation.navigate('Device')
}
},
})} />
Другое решение, и даже лучше, работает на android и IOS операционных системах
DeviceNavigatorTab this является экранным именем навигатора вкладок, {screen: 'Device'} - это первое экранное имя стека в навигаторе субстека, надеюсь, это поможет
<Tab.Screen name={`DeviceNavigatorTab`} component={DeviceNavigator} options={{
tabBarIcon: ({tintColor}) => <Image source={require('../../images/feather_home-menu.png')} style={{width: 26, height: 26, tintColor}}/>,
}} listeners={({ navigation }) => ({
tabPress: e => {
navigation.navigate('DeviceNavigatorTab', { screen: 'Device' });
},
})} />
Это на самом деле не сброс настроек навигаторов, это просто на указанный экран внутри этой вкладки навигатора.