Navegando entre telas e passando parâmetros
Use navigation.navigate para passar de uma tela a outra, passe parâmetros no segundo argumento e leia-os com route.params na tela de destino.
Navegando entre telas e passando parâmetros é uma aula grátis de React Native Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Native Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Native Academy inclui 4 aulas no total.
A propriedade navigation nas telas
Todo componente registrado como uma tela em um navegador do React Navigation recebe automaticamente a propriedade navigation. Esse objeto fornece métodos para passar de uma tela para outra, voltar e gerenciar a pilha de navegação. Você também pode acessá-lo em componentes aninhados usando o gancho useNavigation.
function HomeScreen({ navigation }) {
// navigation.navigate, navigation.goBack, etc.
return <View />;
}Navegando com navigation.navigate
Chame navigation.navigate('ScreenName') para passar para outra tela. Se a tela já estiver na pilha e você navegar até ela novamente, o React Navigation irá para a instância existente em vez de adicionar uma duplicata. Use navigation.push('ScreenName') para sempre adicionar uma nova instância.
function HomeScreen({ navigation }) {
return (
<Button
title='Go to Details'
onPress={() => navigation.navigate('Details')}
/>
);
}Voltando com navigation.goBack
Chame navigation.goBack() para retirar a tela atual da pilha e voltar à anterior. No iOS, o gesto de deslizar para voltar vem ativado por padrão. No Android, o botão Voltar físico chama goBack automaticamente. Use navigation.popToTop() para voltar diretamente à primeira tela.
function DetailsScreen({ navigation }) {
return (
<Button
title='Go Back'
onPress={() => navigation.goBack()}
/>
);
}Passando parâmetros durante a navegação
Passe um segundo argumento para navigation.navigate a fim de enviar parâmetros à tela de destino. O objeto de parâmetros pode conter qualquer dado serializável — IDs, textos e valores booleanos. Evite passar objetos complexos não serializáveis, como instâncias de classes ou funções.
function HomeScreen({ navigation }) {
return (
<Button
title='View Post'
onPress={() =>
navigation.navigate('Details', {
postId: 42,
title: 'React Navigation Deep Dive',
})
}
/>
);
}Lendo parâmetros com route.params
A tela de destino recebe uma propriedade route junto com a propriedade navigation. Acesse os parâmetros enviados por meio de route.params. Sempre forneça valores padrão caso uma tela seja aberta sem parâmetros, por exemplo, quando for a tela inicial.
function DetailsScreen({ route, navigation }) {
const { postId, title } = route.params ?? {};
return (
<View>
<Text>Post ID: {postId}</Text>
<Text>Title: {title}</Text>
</View>
);
}Parâmetros padrão em Stack.Screen
Defina initialParams em um Stack.Screen para fornecer valores de parâmetros padrão. Esses valores padrão são combinados com quaisquer parâmetros enviados durante a execução, para que a tela sempre tenha um conjunto completo de valores com os quais trabalhar, mesmo quando for aberta como a rota inicial.
<Stack.Screen
name='Details'
component={DetailsScreen}
initialParams={{ postId: 0, title: 'Unknown' }}
/>Atualizando parâmetros em uma tela
Uma tela pode atualizar seus próprios parâmetros usando navigation.setParams. Isso é útil quando uma ação na tela atual, como editar um campo de formulário, deve ser refletida no título do cabeçalho de navegação. A atualização dos parâmetros aciona uma nova renderização da tela.
function DetailsScreen({ route, navigation }) {
const { title } = route.params;
return (
<Button
title='Update Title'
onPress={() => navigation.setParams({ title: 'Updated Title' })}
/>
);
}Usando o gancho useNavigation
Componentes filhos profundos que não são telas registradas não recebem automaticamente a propriedade navigation. Use o gancho useNavigation() do React Navigation para acessar o objeto de navegação em qualquer lugar dentro da árvore de navegadores, sem precisar repassar propriedades por vários níveis.
import { useNavigation } from '@react-navigation/native';
function MyButton() {
const navigation = useNavigation();
return (
<Button
title='Go to Profile'
onPress={() => navigation.navigate('Profile')}
/>
);
}Usando o gancho useRoute
Da mesma forma, use o gancho useRoute() para acessar route.params em um componente que não seja uma tela. Isso é útil quando você tem um componente profundamente aninhado que precisa ler os parâmetros da tela atual sem repassar a propriedade route por todos os níveis.
import { useRoute } from '@react-navigation/native';
function PostHeader() {
const route = useRoute();
const { title } = route.params ?? {};
return <Text style={{ fontWeight: 'bold' }}>{title}</Text>;
}Definindo o título do cabeçalho a partir dos parâmetros
Você pode definir dinamicamente o título do cabeçalho de navegação com base nos parâmetros da rota, passando uma função para a propriedade options. A função recebe o objeto route, permitindo usar os valores dos parâmetros como título da tela sem precisar de um estado adicional.
<Stack.Screen
name='Details'
component={DetailsScreen}
options={({ route }) => ({ title: route.params.title ?? 'Details' })}
/>Voltando e enviando dados de volta
Para enviar dados de uma tela filha de volta à tela pai, use navigation.navigate com o nome da tela pai e inclua os dados de retorno como parâmetros. A tela pai receberá os parâmetros atualizados. Como alternativa, passe uma função de retorno de chamada como parâmetro para a tela filha e chame-a antes de voltar.
// In child screen
navigation.navigate('Home', { selectedItem: 'apple' });
// In parent screen — read route.params.selectedItemVerificação rápida
Teste sua compreensão da navegação entre telas e dos parâmetros do React Navigation apresentados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu a: usar navigation.navigate para passar para outra tela, passar parâmetros como segundo argumento de navigate e ler parâmetros com route.params na tela de destino. A seguir, exploraremos o navegador de abas inferiores.
Aprenda JavaScript com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Navegando entre telas e passando parâmetros” é grátis?
Sim — o texto completo de “Navegando entre telas e passando parâmetros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Native Academy, atualize para CoddyKit PRO. O curso de React Native Academy inclui 4 aulas no total.
O que vou aprender em “Navegando entre telas e passando parâmetros”?
Use navigation.navigate para passar de uma tela a outra, passe parâmetros no segundo argumento e leia-os com route.params na tela de destino. Você pratica React Native Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Native Academy?
Nenhuma experiência prévia é necessária. React Native Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Navegando entre telas e passando parâmetros”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Native Academy?
Sim. Cada aula de React Native Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Instalando e configurando o React Navigation
- Navegando entre telas e passando parâmetros
- Navegador de abas inferiores
- Navegador lateral e navegadores aninhados