watchComputedModel<R> function

Widget watchComputedModel<R>(
  1. ReactiveModel model,
  2. R compute(),
  3. Widget builder(
    1. R value
    )
)

Watch a computed value from any ReactiveModel

Implementation

Widget watchComputedModel<R>(
  ReactiveModel model,
  R Function() compute,
  Widget Function(R value) builder,
) {
  R cachedValue = compute();
  return ReactiveBuilder<ReactiveModel>(
    model: model,
    builder: (_) {
      final newValue = compute();
      if (cachedValue != newValue) cachedValue = newValue;
      return builder(cachedValue);
    },
  );
}