reaction<V> method

void reaction<V>(
  1. V selector(),
  2. void callback(
    1. V value
    ), {
  3. List<Symbol>? fields,
})

Implementation

void reaction<V>(
  V Function() selector,
  void Function(V value) callback, {
  List<Symbol>? fields,
}) {
  V? lastValue;
  final r = _Reaction(
    fields: fields,
    once: false,
    callback: (ReactiveModel _) {
      final newValue = selector();
      if (lastValue != newValue) {
        lastValue = newValue;
        callback(newValue);
      }
    },
  );
  _reactions.add(r);
  r.callback(this); // initial run
}