gpt4 book ai didi

android - Flutter:如何将变量从 StatelessWidget 传递到 StatefulWidget

转载 作者:IT王子 更新时间:2023-10-29 07:21:18 25 4
gpt4 key购买 nike

问题是我无法将我自己的类 ForceSelection 值从另一个屏幕传递到另一个屏幕的 StatefulWidget。它在 StatelessWidget 中运行良好。我试图从这个 flutter 教程中学习:https://flutter.dev/docs/cookbook/navigation/passing-data#4-navigate-and-pass-data-to-the-detail-screen

我在 levelSelection.dart 中有这种类

class ForceSelection {
final String forceSelection;
final String langSelection;

ForceSelection(this.forceSelection, this.langSelection);
}

我正在尝试将值传递给下一个文件 PlayQuiz.dart

Game(forceSelection: ForceSelection('maa', 'fin'))

game.dart 看起来像这样:

class Game extends StatelessWidget {
final ForceSelection forceSelection;

Game({Key key, @required this.forceSelection}) : super(key: key);

@override
Widget build(BuildContext context) {
return MaterialApp(
title: forceSelection.langSelection, // TODO should work and change later
theme: new ThemeData(
primaryColor: Colors.white,
),
home: PlayQuiz(),
);
}
}

我想将 ForceSelection 值传递给 PlayQuiz()

class PlayQuizState extends State<PlayQuiz> {
Game.forceSelection // <--- How can I get the value out of here?
}

class PlayQuiz extends StatefulWidget {
@override
PlayQuizState createState() => new PlayQuizState();
}

完整代码可以在这里找到:https://pastebin.com/nKssz42R还有 levelSelection.dart:https://pastebin.com/8QbBD0A2

最佳答案

试试这段代码

在 PlayQuiz() 中添加了 forceSelecton 参数

class Game extends StatelessWidget {
final ForceSelection forceSelection;

Game({Key key, @required this.forceSelection}) : super(key: key);

@override
Widget build(BuildContext context) {
return MaterialApp(
title: forceSelection.langSelection, // TODO should work and change later
theme: new ThemeData(
primaryColor: Colors.white,
),
home: PlayQuiz(forceSelection),
);
}
}

游戏中测验

class PlayQuiz extends StatefulWidget {
final ForceSelection forceSelection;

PlayQuiz(this.forceSelection);

@override
PlayQuizState createState() => new PlayQuizState(forceSelection);
}

在 PlayQuizState 中

class PlayQuizState extends State<PlayQuiz> {
ForceSelection forceSelection;

PlayQuizState(ForceSelection forceSelection) {
this.forceSelection = forceSelection;
}
}

关于android - Flutter:如何将变量从 StatelessWidget 传递到 StatefulWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55495917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com