---
title: 📤 Pasar datos cunha ruta nomeada
description: "Ata agora utilizamos `Navigator.pushNamed()` para abrir unha pantalla indicando o nome da súa ruta. Pero, en ocasións, tamén necesitamos **enviarlle información á pantalla que imos abrir**. Por exemplo, imaxinemos que queremos enviar o nome dun grupo desde `PantallaInicio` ata `PantallaGrupo`,…"
url: "https://www.drodicio.com/docs/flutter/tema-5-navegacion/enviar-datos/"
updated: "2026-10-12"
category: Tema 5. Interaccion, formularios e navegacion
---

# 📤 Pasar datos cunha ruta nomeada

Ata agora utilizamos `Navigator.pushNamed()` para abrir unha pantalla indicando o nome da súa ruta. Pero, en ocasións, tamén necesitamos **enviarlle información á pantalla que imos abrir**.

Por exemplo, imaxinemos que queremos enviar o nome dun grupo desde `PantallaInicio` ata `PantallaGrupo`, para que esta última o mostre.

![Envío do nome do grupo a outra pantalla mediante arguments](https://www.drodicio.com/wp-content/uploads/2026/10/enviar_datos.png)
Envío do nome do grupo a outra pantalla mediante arguments

## 📦 Enviar os datos

Para enviar información utilizamos o parámetro `arguments` de `Navigator.pushNamed()`:

```dart
Navigator.pushNamed(
  context,
  '/grupo',
  arguments: '2º DAM',
);
```

Neste código:

- `'/grupo'` indica a pantalla que queremos abrir.
- `arguments: '2º DAM'` envía o texto `'2º DAM'` a esa pantalla.

> 💡 Podemos enviar diferentes tipos de datos, como textos, números ou listas.

## 📥 Recibir os datos

Na pantalla de destino necesitamos recuperar a información enviada. Para iso utilizamos:

```dart
final grupo = ModalRoute.of(context)!.settings.arguments as String;
```

Esta instrución pode parecer complicada, pero imos dividila:

- **`ModalRoute.of(context)`** permite acceder á información da ruta actual.
- **`.settings.arguments`** recupera os datos que recibiu esa ruta.
- **`as String`** indica que esperamos recibir un texto.

O resultado gárdase na variable `grupo`, que podemos utilizar para mostrar o nome recibido:

```dart
Text(grupo)
```

> 💡 Neste exemplo sabemos que sempre enviamos un texto, polo que utilizamos `as String`. Se o dato recibido non fose un texto, produciríase un erro. Ademais, `!` indica que esperamos que exista unha ruta asociada ao contexto.

## 🧪 Exemplo completo

Neste exemplo, a pantalla inicial envía o nome do grupo e a segunda pantalla recíbeo e móstrao.

> 🔗 DartPad:
>
>
>
> - [`https://dartpad.dev/?id=fb0a5094aeb01b633700208c951ced80`](https://dartpad.dev/?id=fb0a5094aeb01b633700208c951ced80).

[https://dartpad.dev/embed-inline.html?id=fb0a5094aeb01b633700208c951ced80](https://dartpad.dev/embed-inline.html?id=fb0a5094aeb01b633700208c951ced80)

![Código para enviar e recibir datos cunha ruta nomeada](https://www.drodicio.com/wp-content/uploads/2026/10/paso_datos.png)
Código para enviar e recibir datos cunha ruta nomeada

## 🔍 Que sucede ao executar o programa?

1. A aplicación mostra `PantallaInicio`.
2. Ao premer «Abrir grupo», executamos `pushNamed()` e enviamos o texto `'2º DAM'` mediante `arguments`.
3. Flutter abre `PantallaGrupo`.
4. A nova pantalla recupera o texto recibido mediante `ModalRoute.of(context)!.settings.arguments`.
5. O texto móstrase na pantalla utilizando a variable `grupo`.

Deste xeito, podemos **enviar información dunha pantalla a outra sen ter que escribir directamente os datos na pantalla de destino**.

> 💡 **Lembra:** podemos enviar datos entre pantallas de dúas formas:
>
>
>
> - **Con `MaterialPageRoute`:** enviamos os datos directamente ao construtor da pantalla.
> - **Con `Navigator.pushNamed()`:** enviamos os datos mediante `arguments` e recuperámolos na pantalla de destino.
>
>
>
> Neste exemplo sabemos que sempre recibiremos un texto. En aplicacións máis complexas, debemos comprobar que os datos recibidos son do tipo esperado antes de utilizalos.
