watchEffect3<T1, T2, T3, TObs1, TObs2, TObs3> function
void
watchEffect3<T1, T2, T3, TObs1, TObs2, TObs3>(
- BuildContext context,
- void effect(
- T1,
- T2,
- T3
- Object obs1,
- Object obs2,
- Object obs3,
- ContextWatcherObservableType type1,
- ContextWatcherObservableType type2,
- ContextWatcherObservableType type3, {
- Object? key,
- bool immediate = false,
- bool once = false,
Implementation
void watchEffect3<T1, T2, T3, TObs1, TObs2, TObs3>(
BuildContext context,
void Function(T1, T2, T3) effect,
Object obs1,
Object obs2,
Object obs3,
ContextWatcherObservableType type1,
ContextWatcherObservableType type2,
ContextWatcherObservableType type3, {
Object? key,
bool immediate = false,
bool once = false,
}) {
final contextWatch = InheritedContextWatch.of(context);
final observable1 = contextWatch.getOrCreateObservable<TObs1>(
context,
obs1,
type1,
);
final observable2 = contextWatch.getOrCreateObservable<TObs2>(
context,
obs2,
type2,
);
final observable3 = contextWatch.getOrCreateObservable<TObs3>(
context,
obs3,
type3,
);
observable1.watchEffect(
(arg1) {
if (shouldAbortMassEffect3(
key,
observable1,
observable2,
observable3,
once: once,
immediate: immediate,
)) {
return;
}
final arg2 = observable2.subscription.callbackArgument as T2;
final arg3 = observable3.subscription.callbackArgument as T3;
effect(arg1, arg2, arg3);
},
key: key,
immediate: immediate,
once: once,
);
observable2.watchEffect(
(arg2) {
if (shouldAbortMassEffect3(
key,
observable1,
observable2,
observable3,
once: once,
immediate: immediate,
)) {
return;
}
final arg1 = observable1.subscription.callbackArgument as T1;
final arg3 = observable3.subscription.callbackArgument as T3;
effect(arg1, arg2, arg3);
},
key: key,
immediate: immediate,
once: once,
);
observable3.watchEffect(
(arg3) {
if (shouldAbortMassEffect3(
key,
observable1,
observable2,
observable3,
once: once,
immediate: immediate,
)) {
return;
}
final arg1 = observable1.subscription.callbackArgument as T1;
final arg2 = observable2.subscription.callbackArgument as T2;
effect(arg1, arg2, arg3);
},
key: key,
immediate: immediate,
once: once,
);
}