obtain<T> static method
获取或创建 ValueNotifier
Implementation
static ValueNotifier<T> obtain<T>(
dynamic target, {
void Function(T value)? listener,
T? defaultValue,
}) {
if (!_notifiers.containsKey(target)) {
final notifier = ValueNotifier<T?>(defaultValue);
_notifiers[target] = notifier;
_listeners[target] = <void Function(dynamic)>{};
notifier.addListener(() {
final value = notifier.value;
for (var l in _listeners[target]!.toList()) {
l(value);
}
});
}
if (listener != null) {
_listeners[target]!.add((value) => listener(value as T));
}
return _notifiers[target]! as ValueNotifier<T>;
}