LxMap<K, V> class
A reactive map that notifies observers on modification.
LxMap implements Map and intercepts all mutating operations (operator []=, remove, clear, etc.) to trigger reactive updates.
// Example usage:
final settings = {'theme': 'dark'}.lx;
// Update triggers observers
settings['theme'] = 'light';
- Inheritance
- Implemented types
-
- Map<
K, V>
- Map<
- Available extensions
Constructors
Properties
-
entries
→ Iterable<
MapEntry< K, V> > -
The map entries of this Map.
no setteroverride
-
equals
→ bool Function(Map<
K, V> previous, Map<K, V> current)? -
Custom equality function. When null, uses
==.finalinherited - graphDepth ↔ int
-
Returns the current depth in the dependency graph.
getter/setter pairinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListener → bool
-
Whether there are active listeners.
no setterinherited
- id → int
-
A unique runtime identifier for this reactive instance.
finalinherited
- isDisposed → bool
-
Whether the reactive object has been closed/disposed.
no setterinherited
- isEmpty → bool
-
Whether there is no key/value pair in the map.
no setteroverride
- isNotEmpty → bool
-
Whether there is at least one key/value pair in the map.
no setteroverride
- isSensitive ↔ bool
-
Whether this reactive object contains sensitive data.
getter/setter pairinherited
-
keys
→ Iterable<
K> -
The keys of this Map.
no setteroverride
- length → int
-
The number of key/value pairs in the map.
no setteroverride
-
lx
→ LxMap<
K, V> -
Available on Map<
Converts this map into reactive LxMap.K, V> , provided by the LxMapExtension extensionno setter - name ↔ String?
-
An optional descriptive name for debugging and profiling.
getter/setter pairinherited
- onCancel → void Function()?
-
Called when the stream is cancelled.
finalinherited
- onListen → void Function()?
-
Called when the stream is listened to.
finalinherited
- ownerId ↔ String?
-
The registration key of the owning controller, if applicable.
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
stream
→ Stream<
Map< K, V> > -
A Stream that emits the latest value whenever it updates.
no setterinherited
-
value
↔ Map<
K, V> -
The current state of the reactive object.
getter/setter pairinherited
-
values
→ Iterable<
V> -
The values of this Map.
no setteroverride
Methods
-
addAll(
Map< K, V> other) → void -
Adds all key/value pairs of
otherto this map.override -
addEntries(
Iterable< MapEntry< entries) → voidK, V> > -
Adds all key/value pairs of
newEntriesto this map.override -
addListener(
void listener()) → void -
Adds a listener.
inherited
-
assign(
Map< K, V> other) → void -
Replaces all entries with those from
otherin a single notification. -
bind(
Stream< Map< externalStream) → voidK, V> > -
Binds an external stream to this reactive variable.
inherited
-
call(
[Map< K, V> ? v]) → Map<K, V> -
Updates and retrieves the value using call syntax.
inherited
-
cast<
RK, RV> () → Map< RK, RV> -
Provides a view of this map as having
RKkeys andRVinstances, if necessary.override -
clear(
) → void -
Removes all entries from the map.
override
-
close(
) → void -
Permanently closes the reactive object and releases all internal resources.
inherited
-
containsKey(
Object? key) → bool -
Whether this map contains the given
key.override -
containsValue(
Object? val) → bool -
Whether this map contains the given
value.override -
dispose(
) → void -
Disposes the notifier.
inherited
-
forEach(
void action(K key, V value)) → void -
Applies
actionto each key/value pair of the map.override -
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
convertfunction.override -
mutate(
void mutator(Map< K, V> other)) → void -
Mutates the value in place and triggers a refresh.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notify(
) → void -
Alias for refresh.
inherited
-
putIfAbsent(
K key, V ifAbsent()) → V -
Look up the value of
key, or add a new entry if it isn't there.override -
refresh(
) → void -
Triggers a notification without changing the value.
inherited
-
remove(
Object? key) → V? -
Removes
keyand its associated value, if present, from the map.override -
removeListener(
void listener()) → void -
Removes a listener.
inherited
-
removeWhere(
bool test(K key, V value)) → void -
Removes all entries of this map that satisfy the given
test.override -
select<
R> (R selector(Map< K, V> value)) → LxComputed<R> -
Creates a specific selection of the state that only updates when the selected value changes.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
transform<
R> (Stream< R> transformer(Stream<Map< stream)) → LxStream<K, V> >R> -
Transforms the stream of changes using
transformer.inherited -
unbind(
) → void -
Unbinds any external stream.
inherited
-
update(
K key, V update(V value), {V ifAbsent()?}) → V -
Updates the value for the provided
key.override -
updateAll(
V update(K key, V value)) → void -
Updates all values.
override
-
updateValue(
Map< K, V> fn(Map<K, V> val)) → void -
Updates the value using a transformation function.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
Object? key) → V? -
The value for the given
key, ornullifkeyis not in the map.override -
operator []=(
K key, V val) → void -
Associates the
keywith the givenvalue.override