Widget не обновляет при Timer.periodic

Почему deleteTimerString не обновляется

Widget ListItem(.......) {
String deleteTimerString = '';
const oneSec = const Duration(seconds: 1);
Timer.periodic(
oneSec,
(Timer timer) => setState(
    () {
    DateTime now = DateTime.now();
    Duration diff = DateTime.parse(currentSorol.deleteDate).difference(now);
    deleteTimerString = diff.toString();
    },
),);
return Container(
..............
ListTile(
    title: Text(
    deleteTimerString
..............
);

}


Ответы (1 шт):

Автор решения: NoProgress

Решил проблему использовав timer_builder 1.3.0 библиотеку

  Widget timeToDelete(DateTime deleteDate) {
    const oneSec = const Duration(seconds: 1);
    return TimerBuilder.periodic(oneSec, builder: (context) {
      DateTime now = DateTime.now();
      Duration diff = deleteDate.difference(now);
      return ListTile(
        title: Text(
          diff.toString(),
          maxLines: 2,
          overflow: TextOverflow.ellipsis,
          style: TextStyle(fontSize: 10, color: Colors.red),
        ),
      );
    });
  }
→ Ссылка