Рецепты
Точечная перестройка интерфейса Flutter
Выберите Builder или Selector по значению, на которое должен реагировать интерфейс.
v0.1.0-dev.1Средний уровеньusecase_forge_flutter
Точечная перестройка интерфейса Flutter
Используйте UseCaseBuilder, когда виджету нужен полный UseCaseSnapshot. Используйте UseCaseSelector, когда требуется одно производное значение, а остальные изменения Snapshot не должны перестраивать интерфейс.
dart
UseCaseSelector<CartUseCase, CartState, int>(
selector: (snapshot) => snapshot.state.items.length,
builder: (context, itemCount) => Badge(label: Text('$itemCount')),
)
Функция selector вызывается для каждого Snapshot, а builder — только при изменении выбранного значения по ==. Выбирайте небольшое неизменяемое значение с осмысленным равенством.
Применяйте buildWhen у UseCaseBuilder, если решение зависит от предыдущего и текущего Snapshot. Не копируйте State во вторую модель представления только ради сокращения числа перестроений: это создаёт конкурирующие источники истины.