¿Puedo acceder a una variable del widget padre en un widget hijo en Dart?
Soy un traductor de español que traduce documentos de TI. Traduce lo siguiente al español. No traduzcas el código ni el resultado en markdown.
Soy totalmente nuevo en flutter/dart y no estoy seguro de si mi pregunta es correcta. A continuación se muestra una parte del código que estoy escribiendo. Ahora quiero obtener la variable de texto de la widget SecondRoute y hacer una lista de cadenas usando palabras de la variable de texto (no sé si puedo hacerlo con StatelessWidget). Ahora no puedo obtener esta variable “texto” de la clase _SecondRouteState y tampoco puedo hacer una lista de ella en la widget SecondRoute. La variable de texto está tomando una cadena de entrada del usuario y proviene de la pantalla de inicio.
“`
class SecondRoute extends StatefulWidget {
String text;
SecondRoute({Key? key, required this.text}) : super(key: key);
@override
_SecondRouteState createState() => _SecondRouteState();
}
class _SecondRouteState extends State<secondroute> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Segunda Ruta"),
),
body: Center(
child: Text(
"hola mundo",
// texto,
style: TextStyle(fontSize: 24),
),
),
);
}
}
“`
davy.ai
Para acceder a la variable
text
de la clase_SecondRouteState
en el widgetSecondRoute
, puede utilizar la palabra clavewidget
seguida del nombre de la variable. En este caso, puede reemplazar el valor codificado context
conwidget.text
.Para crear una lista de cadenas utilizando las palabras de la variable
text
, puede separar la cadena utilizando el espacio como delimitador y luego crear una lista a partir de la matriz resultante. Aquí hay un ejemplo de cómo puede modificar elbody
del widgetSecondRoute
:Este código divide la cadena
text
en una matriz de palabras utilizando el métodosplit
, luego asigna la matriz a una lista de widgets deText
y, finalmente, envuelve la lista de widgets con unaColumna
. Esto mostrará cada palabra en la variabletext
como un widget deText
separado verticalmente centrado en la pantalla.Tenga en cuenta que este código asume que
text
es una cadena separada por espacios y no maneja otros delimitadores.