Para crear nuestro Routers de navegacion tenemos que crear unas carpetas llamadas

Lo que haremos es que en Screens con el comando rfne vamos a crear un componente que nos va a retornar solo un texto, y haremos los mismo para HomeScreen.jsx y SettingScreen.jsx

import React from "react";
import { View, Text } from "react-native";

const HomeScreen = () => {
  return (
    <View>
      <Text>HomeScreen</Text>
    </View>
  );
};

export default HomeScreen
import { View, Text } from 'react-native'
import React from 'react'

const SettingsScreen = () => {
  return (
    <View>
      <Text>SettingsScreen</Text>
    </View>
  )
}

export default SettingsScreen

Y en la carpeta navigation vamos a crear nuestro NavigationStack.jsx y este sera nuestro enrutador aquí vamos a importar nuestros componentes para asignarles rutas (Esto renderiza de arriba hacia abajo)

import React from "react";
import { createNativeStackNavigator } from "@react-navigation/native-stack";

// Screens
import HomeScreen from "../screens/HomeScreen";
import SettingsScreen from "../screens/SettingsScreen";

const Stack = createNativeStackNavigator();

const NavigationStack = () => {
  return (
    <Stack.Navigator>
      {/* Esto carga de arriba hacia abajo */}
      <Stack.Screen name="Home" component={HomeScreen} />
      <Stack.Screen name="Settings" component={SettingsScreen} />
    </Stack.Navigator>
  );
};

export default NavigationStack;

Con el parámetro initialRouteName podemos indicar que ruta quiero que se inicie

<Stack.Navigator initialRouteName="Home">

La rutas de manera implicita heredan props, por ejemplo si hacemos un console .log de los props de HomeScreen vamos a encontrar ciertos atributos entre esos navigate

const HomeScreen = (props) => {

  console.log(props)

  return (
   //....
  );
};
{"navigation": {"addListener": [Function addListener], "canGoBack": [Function canGoBack], "dispatch": [Function dispatch], "getId": [Function getId], "getParent": [Function getParent], "getState": [Function anonymous], "goBack": [Function anonymous], "isFocused": [Function isFocused], "navigate": [Function anonymous], "pop": [Function anonymous], "popToTop": [Function anonymous], "push": [Function anonymous], "removeListener": [Function removeListener], "replace": [Function anonymous], "reset": [Function anonymous], "setOptions": [Function setOptions], "setParams": [Function anonymous]}, "route": {"key": "Home-ep535XQ4hAjJCR65j55EE", "name": "Home", "params": undefined}}

Si desestructuramos los props y traemos navigation por medio de una función llamando el método navigate y pasando como prop el nombre de la ruta a la que queremos ir podemos movernos entre pantallas

import React from "react";
import { View, Text, Button } from "react-native";

const HomeScreen = ({ navigation }) => {
  const goToPage = () => {
    navigation.navigate("Settings");
  };

  return (
    <View>
      <Text>HomeScreen</Text>
      <Button title="Ajustes" onPress={goToPage} />
    </View>
  );
};

export default HomeScreen;