0

这是构建功能。最初为 null 的变量newTaskTitle从 TextField 中获取值。但是这个值不会反映在 Flat Button 小部件中。FlatButton 小部件的值newTaskTitle保持为空。帮助我了解我哪里出错了。

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

提前致谢。

4

1 回答 1

1

嘿 Manoj 我可以看到您使用无状态小部件来执行此任务,并且您在此处声明变量:

Widget build(BuildContext context) {
String newTaskTitle;     <----- Here 

所以我的回答是不要在这里声明请在你的导入下面像这样在全局 umm 中声明它

import 'material.dart';
String newTaskTitle;   <--- Here or anywhere outside the scope of Stateless widget

现在我们通常更喜欢使用有状态的小部件来完成这样的任务。希望这有效:)

于 2020-07-12T15:17:42.027 回答