trigger<T> function
T
trigger<T>(
- T fn()
Executes fn inside a temporary subscriber and propagates any triggered
signals once the callback finishes.
Parameters:
fn: Callback that performs reactive writes
Example:
final list = <int>[];
final signal = Signal(list);
list.add(1);
trigger(() {
signal.value;
});
Implementation
@pragma("vm:prefer-inline")
@pragma("wasm:prefer-inline")
@pragma("dart2js:prefer-inline")
T trigger<T>(T Function() fn) {
final sub = _DummyEffectNode(flags: ReactiveFlags.watching);
final prevSub = setActiveSub(sub);
try {
return fn();
} finally {
activeSub = prevSub;
var link = sub.deps;
while (link != null) {
final dep = link.dep;
link = unlink(link, sub);
final subs = dep.subs;
if (subs != null) {
sub.flags = ReactiveFlags.none;
propagate(subs);
shallowPropagate(subs);
}
}
if (batchDepth == 0) {
flushEffects();
}
}
}