listenByKey method
void Function()
listenByKey(
- dynamic key,
- void onData(
- dynamic
Listens to a specific key in a Map or index in a List.
Only triggers when the targeted field changes.
Implementation
void Function() listenByKey(dynamic key, void Function(dynamic value) onData) {
void wrapper(dynamic value) => onData(value);
addFieldListener(key, wrapper);
// Initial value
dynamic fieldValue;
if (_value is Map) {
fieldValue = (_value as Map)[key];
} else if (_value is List && key is int) {
final list = _value as List;
if (key >= 0 && key < list.length) {
fieldValue = list[key];
}
}
onData(fieldValue);
bool cancelled = false;
return () {
if (!cancelled) {
removeFieldListener(key, wrapper);
cancelled = true;
}
};
}