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 = ReactiveNode(flags: ReactiveFlags.watching);
final prevSub = setActiveSub(sub);
try {
return fn();
} finally {
activeSub = prevSub;
while (sub.deps != null) {
final link = sub.deps!;
final dep = link.dep;
unlink(link, sub);
if (dep.subs != null) {
propagate(dep.subs!);
shallowPropagate(dep.subs!);
}
}
if (batchDepth == 0) {
flushEffects();
}
}
}