gpt4 book ai didi

forms - 如何在 Flutter 中动态更改 initialValue

转载 作者:IT王子 更新时间:2023-10-29 07:11:39 24 4
gpt4 key购买 nike

我有一个包含一些字段的表单,其中一个是日期字段:

GestureDetector(
onTap: () {
selectDate(context);
},
child: AbsorbPointer(
child: TextFormField(
initialValue: dataEvento,
decoration: InputDecoration(
labelText: 'Date ${dataEvento}',
labelStyle: TextStyle(
fontFamily: 'acumin-pro',
fontSize:
MediaQuery.of(context).size.height * 0.022,
fontWeight: FontWeight.bold,
color: Colors.grey),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: dataUserGlobal.yellow))),
style: TextStyle(color: dataUserGlobal.lightBlue),
validator: (value) =>
value.isEmpty ? 'Campo obbligatorio' : null,
onSaved: (value) => dataEvento = value,
),
),
),

当我点击那个字段时,我调用这个函数

DateTime selectedDate = DateTime.now();
Future selectDate(BuildContext context) async {
DateTime picked = await showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: DateTime(2015, 8),
lastDate: DateTime(2101));
if (picked != null && picked != selectedDate)
setState(() {
dataEvento = DateFormat('yyyy-MM-dd').format(picked);
});
}

但我无法更改字段内的值。

为了调试它,我尝试在我的标签文本 labelText: 'Date ${dataEvento}' 中插入变量的名称,当我点击该字段并选择日期。但字段 initialValue 仍为空白。

我做错了什么?

最佳答案

像这样将 Controller 添加到您的 textFormField 怎么样:

TextEditingController _txtFormCtrl = TextEditingController();

,这是一个可以帮助你的功能:

 void _changeDatetime(int year, int month, int date) {
setState(() {
_year = year;
_month = month;
_date = date;
_datetime = '$year-$month-$date';
_txtFormCtrl.text = _datetime;
});
}

关于forms - 如何在 Flutter 中动态更改 initialValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56100736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com