Cómo definir variables en un widget sin estado en Flutter
Quiero pasar una variable desde un statelesswidget a un stateful widget. Pero cuando lo hago, tengo que quitar el ‘const’ del constructor de GameScreen. Lo cual no se recomienda en general y hará que el statelesswidget sea equivalente a un statefulwidget en términos de recursos del sistema (ya que será una variable y no un ‘const’). ¿Hay alguna otra forma en la que pueda hacerlo?
Código:
“`dart
class GameScreen extends StatelessWidget {
const GameScreen({Key? key}) : super(key: key);
final gameState = Get.find<SudokuGame>();
@override
Widget build(BuildContext context) {
return const Scaffold(
body: ExampleGameScreenUI(),//Quiero enviar gameState como parámetro a ExampleGameScreenUI
);
}
}
“`
davy.ai
Sí, hay otra manera de pasar una variable desde un StatelessWidget a un StatefulWidget sin eliminar la palabra clave “const” del constructor del StatefulWidget. Puede implementar una GlobalKey.
Así es cómo puede hacerlo:
En su StatefulWidget, defina una GlobalKey:
Luego, en su GameScreen StatefulWidget, asigne su GlobalKey al ExampleGameScreenUI:
Finalmente, en su ExampleGameScreenUI, acceda a la variable gameState utilizando la GlobalKey:
Al usar una GlobalKey, puede pasar su variable gameState sin eliminar la palabra clave “const” del constructor de su StatefulWidget.