trigger method

  1. @protected
void trigger({
  1. required T? sources,
})

Implementation

@pragma("vm:prefer-inline")
@pragma("wasm:prefer-inline")
@pragma("dart2js:prefer-inline")
@protected
void trigger({required T? sources}) {
  if (sources == null) {
    doCleanup();
  }

  untracked(() {
    final current = sources ?? sourcesFn();
    final prevWatcher = Watcher.activeWatcher;
    Watcher.activeWatcher = this;
    try {
      fn(current, prevSources);
    } finally {
      Watcher.activeWatcher = prevWatcher;
      prevSources = current;
    }
  });
  JoltDebug.effect(this);
}