В моем приложении есть раздел для добавления оплаты.Чтобы добавить платеж, администратор:
- выберет пользователя
- введите сумму
- выберите от даты
- выберите до даты
И сохраните ее.
Цель: Я хочу обновить с даты динамически, на основев предыдущий день.
Пример Case:
- мы добавили первый платеж пользователя, с
1st June 2019
до 1st September 2019
- , когда мы пытаемсяпроизвести второй платеж, когда клиент выбран;Я хочу получить последний платеж на дату как с даты , заполняемый автоматически.( до даты от дБ до от даты в форме)
Это невозможно сделать при инициализации, потому что дата варьируется для каждого пользователя, поэтомумы можем сделать это по выбору пользователя.
Что я сделал:
Я почти все сделал, но возникла проблема с обновлением значения поля.
Я сделал следующие шаги:
- создал функцию, которая выполняется, когда пользователь выбран
- Функция запрашивает дБ и извлекает последний платежdetail
- и возвращает на дату значение поля предыдущего платежа
значение поля from date устанавливается внутри той же функции, как эта:
setState(() {
_fromDate = DateTime.parse(toDate);
});
Проблема:
Печать _fromDate
внутри setState
Функция выводит правильное значение, но это null
снаружи.
Скажите, пожалуйста, как мне правильно обновить значение и избавиться от этой проблемы?
Обновление: Ниже указан код Widget
: (state
устанавливается, как указано выше, после получения данных из базы данных)
DateTimeField(
onSaved: (val) => setState(() => _fromDate = val),
keyboardType: TextInputType.datetime,
onChanged: (DateTime newValue) {
setState(() {
_fromDate = newValue;
});
},
onShowPicker: (context, currentValue) {
return showDatePicker(
context: context,
firstDate: DateTime.now(),
initialDate: currentValue ?? DateTime.now(),
);
},
);