问题描述
我已经声明了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'
),),
解决方法
您是否尝试过使用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