Tengo una pestaña con múltiples componentes.
const HomePageStack = createStackNavigator(); const HomePageScreen = () => ( <HomePageStack.Navigator initialRouteName='Главная' screenOptions={{ headerShown: true, headerTransparent: true, headerTintColor: '#fff', headerTitleStyle: { color: 'rgba(0, 0, 0, 0)' }, }}> <HomePageStack.Screen name='Главная' component={Home} options={{ title: "Главная" }} style={{ height: '100%' }} /> <HomePageStack.Screen name='Рецепт' component={Recipe} option={{ title: 'Рецепт' }} style={{ height: '100%' }} /> <HomePageStack.Screen name='Аккаунт' component={Account} option={{ title: 'Аккаунт' }} style={{ height: '100%' }} /> </HomePageStack.Navigator> )Al verificar, voy de esta manera (usando navigation.navigate con datos)
Inicio -> Receta -> Cuenta -> Receta
El botón Atrás funciona bien hasta que cambio a la Receta por segunda vez
Cuando voy a la Receta por segunda vez y hago clic en el botón Atrás, me envían a la página principal, pero quiero estar en la Cuenta
No he personalizado ni cambiado el funcionamiento del botón Atrás.
Función de redireccionamiento (de Cuenta a Receta 2):
const handleRecipe = (_id) => { navigation.navigate('Рецепт', { _id }) }Quiero que el botón Atrás funcione como se espera y redirija al usuario a la cuenta y no a la página de inicio. Sospecho que el problema está en mi función de redirección.
navigate vuelve a aparecer antes en la pila porque la pantalla Recipe ya está presente allí. Para insertar otra instancia de Recipe en la pila de navegación, puede usar la acción de inserción en su lugar. Entonces, en la pantalla Account , usa la acción de empujar en lugar de la acción de navegar para evitar volver a la pantalla Recipe ya presente. Consulte https://reactnavigation.org/docs/stack-actions/#push para ver un ejemplo.