У меня есть форма, которая содержит несколько полей, одно из которых является полем даты:
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
остается пустым.
Что я делаю не так?