Widget build(BuildContext context) {
// TODO: implement build
var TaskTextField;
var _newValue = false;
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("To-Do List V2 R1"),
),
body: Container(
child: Column(
children: <Widget>[
Container(
child: TextField(
decoration:
InputDecoration(hintText: "Enter task to be added"),
onChanged: (taskTextField) {
TaskTextField = taskTextField;
print(TaskTextField);
},
),
margin: EdgeInsets.all(16.0),
),
Text("Click Me!"),
Checkbox(
activeColor: Colors.blue,
value: _newValue,
onChanged: (val) {
setState(() {
_newValue = !_newValue;
});
},
),
],
),
),
),
);
}
}
即使调试器在单击时显示_newValue
为真,复选标记也不会显示。我尝试了其他方法,例如使用
_newValue = !_newValue
,但仍然无法使用。我正在Flutter 1.2.1上运行。
答案 0 :(得分:0)
每次执行函数时都会重新创建在函数/方法内部声明的变量。 setState()
导致build()
重新运行,因此每次将_newValue
初始化为false
。
将字段移出build()
方法以保留值
var _newValue = false;
Widget build(BuildContext context) {
// TODO: implement build
var TaskTextField;
...