1

我已经声明了 var valueName; 在我的小部件构建器之前和使用 Firebase 文档值设置它之后: valueName = widget.item.name; 然后,我使用 valueName 作为 TextFormField 的初始值和 onChanged 中的 setState。但是当我在对 Firestore 函数的更新中使用 valueName 时,它​​会加载第一个旧值。我无法更新此值。

这是我的 TextFormField 代码:

TextFormField(
                      initialValue: valueName,
                      onChanged: (input) {
                        setState(() {
                          this.valueName = input;
                          print(valueName);
                        });
                      },
                      keyboardType: TextInputType.name,
                      decoration: InputDecoration(
                          border: UnderlineInputBorder(),
                          filled: true,
                          icon: Icon(
                              Icons.person
                          ),
                          hintText: 'Inserisci il nome',
                          labelText: 'Nome'
                      ),
                    ),
4

1 回答 1

2

你试过使用 TextEditingController 吗?您可以使用它来设置初始值,也可以在没有 setState 的情况下随时更改值。

class Temp extends StatefulWidget {
//constractor
// you are getting your value here
  @override
  _TempState createState() => _TempState ();
}

class _TempState extends State<Temp> with {
//declare here
var variable = widget.item.name;
// you can change this variable
于 2020-09-08T07:09:30.047 回答