文本字段更改的变量值不会在平面按钮中更新
Value of variable altered by Text Field is not updated in Flat Button
这是构建函数。最初为 null 的变量 newTaskTitle
从 TextField 中获取值。但是这个值并没有反映在 Flat Button 小部件中。 newTaskTitle
的值在 FlatButton 小部件中保持为空。帮助我了解哪里出了问题。
Widget build(BuildContext context) {
String newTaskTitle;
return Container(
color: Color(0xFF757575),
child: Container(
padding: EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20),
topRight: Radius.circular(20),
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Text(
'Add Task',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.lightBlueAccent,
fontSize: 30,
),
),
TextField(
autofocus: true,
textAlign: TextAlign.center,
onChanged: (newText) {
newTaskTitle = newText;
print(newTaskTitle);
},
),
SizedBox(
height: 10,
),
FlatButton(
padding: EdgeInsets.all(10),
color: Colors.lightBlueAccent,
onPressed: () {
print(newTaskTitle);
addTaskCallback(newTaskTitle);
},
child: Text(
'Add',
style: TextStyle(
color: Colors.white,
fontSize: 20,
),
),
),
],
),
),
);
}
要克隆项目,可以在此处找到部分完成的代码:https://github.com/vkmanojk/Flutter/tree/master/todoey_flutter
提前致谢。
嘿 Manoj 我可以看到你已经使用无状态小部件来完成这个任务,并且你在这里声明了你的变量:
Widget build(BuildContext context) {
String newTaskTitle; <----- Here
所以我的回答是不要在这里声明它请在全局 umm 中像这样在导入下面声明它
import 'material.dart';
String newTaskTitle; <--- Here or anywhere outside the scope of Stateless widget
现在我们通常更喜欢使用有状态的小部件来完成这样的任务。
希望这有效:)
这是构建函数。最初为 null 的变量 newTaskTitle
从 TextField 中获取值。但是这个值并没有反映在 Flat Button 小部件中。 newTaskTitle
的值在 FlatButton 小部件中保持为空。帮助我了解哪里出了问题。
Widget build(BuildContext context) {
String newTaskTitle;
return Container(
color: Color(0xFF757575),
child: Container(
padding: EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20),
topRight: Radius.circular(20),
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Text(
'Add Task',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.lightBlueAccent,
fontSize: 30,
),
),
TextField(
autofocus: true,
textAlign: TextAlign.center,
onChanged: (newText) {
newTaskTitle = newText;
print(newTaskTitle);
},
),
SizedBox(
height: 10,
),
FlatButton(
padding: EdgeInsets.all(10),
color: Colors.lightBlueAccent,
onPressed: () {
print(newTaskTitle);
addTaskCallback(newTaskTitle);
},
child: Text(
'Add',
style: TextStyle(
color: Colors.white,
fontSize: 20,
),
),
),
],
),
),
);
}
要克隆项目,可以在此处找到部分完成的代码:https://github.com/vkmanojk/Flutter/tree/master/todoey_flutter
提前致谢。
嘿 Manoj 我可以看到你已经使用无状态小部件来完成这个任务,并且你在这里声明了你的变量:
Widget build(BuildContext context) {
String newTaskTitle; <----- Here
所以我的回答是不要在这里声明它请在全局 umm 中像这样在导入下面声明它
import 'material.dart';
String newTaskTitle; <--- Here or anywhere outside the scope of Stateless widget
现在我们通常更喜欢使用有状态的小部件来完成这样的任务。 希望这有效:)