ObservableMap<K, V> class

The ObservableMap tracks the various read-methods (eg: Map.length, Map.isEmpty) and write-methods (eg: Map.[]=, Map.clear) making it easier to use it inside reactions.

As the name suggests, this is the Observable-counterpart to the standard Dart Map<K,V>.

final map = ObservableMap<String, int>.of({'first': 1});

autorun((_) {
}) // prints 1

map['first'] = 100; // autorun prints 100
Implemented types
Available Extensions


ObservableMap({ReactiveContext context})
ObservableMap.linkedHashMapFrom(Map<K, V> other, {ReactiveContext context})
ObservableMap.of(Map<K, V> other, {ReactiveContext context})
ObservableMap.splayTreeMapFrom(Map<K, V> other, {int compare(K, K), bool isValidKey(dynamic), ReactiveContext context})


isEmpty → bool
Returns true if there is no key/value pair in the map.
isNotEmpty → bool
Returns true if there is at least one key/value pair in the map.
keys → Iterable<K>
The keys of this. [...]
length → int
The number of key/value pairs in the map.
entries → Iterable<MapEntry<K, V>>
The map entries of this.
read-only, inherited
hashCode → int
The hash code for this object.
read-only, inherited
runtimeType → Type
A representation of the runtime type of the object.
read-only, inherited
values → Iterable<V>
The values of this.
read-only, inherited


cast<RK, RV>() → Map<RK, RV>
Provides a view of this map as having RK keys and RV instances, if necessary. [...]
clear() → void
Removes all pairs from the map. [...]
containsKey(Object key) → bool
Returns true if this map contains the given key. [...]
observe(MapChangeListener<K, V> listener, {bool fireImmediately}) Dispose
Used to attach a listener for getting notified on changes happening to the map [...]
remove(Object key) → V
Removes key and its associated value, if present, from the map. [...]
addAll(Map<K, V> other) → void
Adds all key/value pairs of other to this map.
addEntries(Iterable<MapEntry<K, V>> newEntries) → void
Adds all key/value pairs of newEntries to this map.
containsValue(Object value) → bool
Returns true if this map contains the given value.
forEach(void action(K key, V value)) → void
Applies f to each key/value pair of the map.
map<K2, V2>(MapEntry<K2, V2> transform(K key, V value)) → Map<K2, V2>
Returns a new map where all entries of this map are transformed by the given f function.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
putIfAbsent(K key, V ifAbsent()) → V
Look up the value of key, or add a new value if it isn't there.
removeWhere(bool test(K key, V value)) → void
Removes all entries of this map that satisfy the given predicate.
toString() → String
Returns a string representation of this object.
update(K key, V update(V value), {V ifAbsent()}) → V
Updates the value for the provided key.
updateAll(V update(K key, V value)) → void
Updates all values.


operator [](Object key) → V
Returns the value for the given key or null if key is not in the map. [...]
operator []=(K key, V value) → void
Associates the key with the given value. [...]
operator ==(dynamic other) → bool
The equality operator.