gpt4 book ai didi

dart - Flutter 变量丢失值

转载 作者:IT王子 更新时间:2023-10-29 06:35:25 24 4
gpt4 key购买 nike

我有一个带有文本字段列表和下拉选项的屏幕。我在 StatefulWidget 类中声明了一个变量,并通过 widget.variableName 在类中使用它,但是在文本字段上输入一些值后,我注意到小部件得到了更新,我的变量失去了它的值,我留下了一个空变量。我已经尝试在 initState() 中初始化它,但它仍然失去了它的值(value)。

例子:

class Screen extends StatefulWidget{
var variable;
@override
_ScreenState createState(){
variable = "dummyText";
return _ScreenState();
}

}

class _ScreenState extends State<Screen>{
@override
Widget build(BuildContext context) {
return Scaffold(
body: _layout(),
);
}

_layout(){
print(" value of variable: ${widget.variable}");
//imagine lots of textfields here in a listview
}
}

在某些文本字段中输入文本后,变量 失去它的值并重置为 null。我怎样才能保持它的值(value),或者我应该在哪里声明它以使其不失去它的值(value)。

最佳答案

您不能在 StatefulWidget 子类中设置可变变量。 StatefulWidget 的所有字段必须是 final 或 const。

相反,将该变量移动到 State 子类中。

class Screen extends StatefulWidget {
_ScreenState createState() => _ScreenState();
}

class _ScreenState extends State<Screen> {
String variable;

@override
void initState() {
variable = "dummyText";
super.initState();
}

@override
Widget build(BuildContext context) {
return Scaffold(
body: _layout(),
);
}

_layout() {
print(" value of variable: $variable");
//imagine lots of textfields here in a listview
}
}

关于dart - Flutter 变量丢失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50917708/

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