Есть ли способ установить периодический таймер для обновления Flutter StatefulBuilder с помощью setState() каждую 1 секунду?

Я нашел эту справку на StatefulBuilder, и она показывает, как использовать setState для обновления вещей в ModalBottomSheet. Но я хочу сделать еще один шаг и сделать таймер, чтобы сделать это.

https://stackoverflow.com/a/56972160/559525

Я создаю такой таймер внутри конструктора с отслеживанием состояния:

var bottomSheetTimer = Timer.periodic(const Duration(milliseconds: 1000), (timer) {
  setState(() {
    currSeekTime += 1;
    print("here");
  });
});

Это распечатывается каждую секунду, но setState() не находится в построителе, поэтому на нижней вкладке ничего не обновляется. Но если я помещу его в конструктор, он создаст МНОГО таймеров.

Любая помощь будет оценена по достоинству!


person Eradicatore    schedule 12.12.2020    source источник
comment
Извини. Думаю, мне не стоило здесь спрашивать.   -  person Eradicatore    schedule 12.12.2020


Ответы (1)


Правильным подходом было бы создание Timer в методе initState, а не build.

person Lee3    schedule 12.12.2020