Как запомнить последние 60 значений StateProvider RiverPod?

Я рефакторинг приложения Flutter, которое в настоящее время используетsetState. Представление, которое я рефакторинг, получает данные из внешнего источника данных примерно каждые 0,5-1 секунду. Данные — это класс, в котором есть несколько метрик. Приложение перечисляет эти метрики в виде списка, каждая метрика имеет расширяемый раздел. В каждом разделе отображается текущее значение метрики, и когда расширяемый раздел (или мы также можем назвать его аккордеоном) открыт, отображается график с, скажем, последними 60 значениями этой метрики.

Если бы это были только сами значения (без графиков), я знаю, что бы я сделал: это был быStateProvider:

      final StateProvider<Record> recordProvider =
    StateProvider<Record>((StateProviderRef<Record> ref) {
  return Record.getZero();
});

И тогда в виджете я мог бы использоватьselect:

      double speed = ref.watch(recordProvider.select((record) => record.speed));

В настоящее время я храню последние 60 записей в кольцевом буфере (точнее, в родномListQueue). Я обдумываю, как я могу реорганизовать это? Под капотом источником записей является поток.

0 ответов

Другие вопросы по тегам