es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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),
),
),
);
}
}
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para acceder a la variable text de la clase _SecondRouteState en el widget SecondRoute, puede utilizar la palabra clave widget seguida del nombre de la variable. En este caso, puede reemplazar el valor codificado con text con widget.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 el body del widget SecondRoute:

    body: Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: widget.text
            .split(' ')
            .map((word) => Text(word))
            .toList(),
      ),
    ),
    

    Este código divide la cadena text en una matriz de palabras utilizando el método split, luego asigna la matriz a una lista de widgets de Text y, finalmente, envuelve la lista de widgets con una Columna. Esto mostrará cada palabra en la variable text como un widget de Text 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.

Comments are closed.