Как запомнить последние 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
). Я обдумываю, как я могу реорганизовать это? Под капотом источником записей является поток.