我已经声明了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'
),
),
答案 0 :(得分: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