SignalReaction<T> constructor
SignalReaction<T>( - Signal<T> signal,
- void callback(
- T value
), {
- bool when(
- T oldValue,
- T newValue
)?,
- bool fireImmediately = false,
})
Implementation
SignalReaction(
this.signal,
this.callback, {
this.when,
bool fireImmediately = false,
}) {
_previousValue = signal.val;
if (fireImmediately) {
callback(signal.val);
}
_subscription = signal.stream.listen((value) {
final oldValue = _previousValue;
_previousValue = value;
if (when != null && oldValue != null) {
if (when!(oldValue as T, value)) {
callback(value);
}
} else {
callback(value);
}
});
}