我已经从RegisteredPatient小部件返回了患者的IC编号,但是初始值不会更新和显示。我已经尝试打印患者IC的值,但是我不明白为什么初始值不更新。我什至尝试了setstate。
TextFormField(
initialValue: ic,
validator: (val) => val.isEmpty ? 'Enter patient IC' : null,
decoration: textInputDecoration.copyWith(
hintText: 'Patient IC e.g. 960XXXXXXXXX'
),
onChanged: (val) {
setState(() => ic = val);
},
onTap: () async {
ic = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisteredPatient())
);
},
),
最佳答案
如果我正确理解了您的问题,那么您希望从RegisteredPatient路由返回时更新文本字段的值。为此,您应该执行以下操作:
声明
TextEditingController _textEditingController = TextEditingController();
您的TextFormField上的
onTap: () async {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisteredPatient())
).then((newIcValue){
setState(() {
_textEditingController.text = newIcValue;
});
});
},
关于firebase - 为什么初始值不更新和显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59929329/