SubEffect constructor
SubEffect({
- required VoidCallback? effect(),
- required Widget child,
- SubValueKeys? keys,
Useful for side-effects and optionally canceling them.
SubEffect calls its effect synchronously on every build
, unless
keys
is specified. In which case the effect is called again only if
any value inside keys
as changed.
It takes an effect
callback and calls it synchronously.
That effect
may optionally return a function, which will be called when the effect
is called again or if the widget is disposed.
By default effect
is called on every build
call, unless keys
is specified.
In which case, effect
is called once on the first build and whenever something within keys
changes.
Implementation
SubEffect({
required VoidCallback? Function() effect,
required Widget child,
SubValueKeys? keys,
}) : super(
create: effect,
builder: (context, value) => child,
dispose: (value) => value?.call(),
// by using a plain object as a key as default,
// we ensure that the effect is called on every build.
keys: keys ?? [Object()],
);