ListSignal<E> class abstract interface

A Signal that behaves like a mutable List and notifies on in-place edits.

Use ListSignal when subscribers should react to add, indexed assignment, and other list mutations without replacing the whole Signal.value. For a derived, read-only view, use IterableSignal or Computed instead.

Example:

final items = ListSignal(['apple', 'banana']);

Effect(() => print('Items: ${items.join(', ')}'));
items.add('cherry');
Implemented types
Available extensions

Constructors

ListSignal(List<E>? value, {JoltDebugOption? debug})
Creates a list signal with optional initial contents.
factory

Properties

first ↔ E
The first element.
getter/setter pairinherited
firstOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The first element of this iterator, or null if the iterable is empty.
no setter
hashCode → int
The hash code for this object.
no setterinherited
indexed → Iterable<(int, T)>

Available on Iterable<T>, provided by the IterableExtensions extension

Pairs of elements of the indices and elements of this iterable.
no setter
isDisposed → bool
Whether this node has been disposed.
no setterinherited
isEmpty → bool
Whether this collection has no elements.
no setterinherited
isNotEmpty → bool
Whether this collection has at least one element.
no setterinherited
iterator → Iterator<E>
A new Iterator that allows iterating the elements of this Iterable.
no setterinherited
last ↔ E
The last element.
getter/setter pairinherited
lastOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The last element of this iterable, or null if the iterable is empty.
no setter
length ↔ int
The number of objects in this list.
getter/setter pairinherited
nonNulls → Iterable<T>

Available on Iterable<T?>, provided by the NullableIterableExtensions extension

The non-null elements of this iterable.
no setter
peek → List<E>
The current value without establishing a reactive dependency.
no setterinherited
reversed → Iterable<E>
An Iterable of the objects in this list in reverse order.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
single → E
Checks that this iterable has only one element, and returns that element.
no setterinherited
singleOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The single element of this iterator, or null.
no setter
toJS → JSArray<T>

Available on List<T>, provided by the ListToJSArray extension

Converts this List to a JSArray by either casting, unwrapping, or cloning the List.
no setter
toJSIterable → JSIterable<T>

Available on Iterable<T>, provided by the IterableToJSIterable extension

A JSIterable wrapper that proxies to the Dart iterable API.
no setter
toJSProxyOrRef → JSArray<T>

Available on List<T>, provided by the ListToJSArray extension

Converts this List to a JSArray by either casting, unwrapping, or proxying the List.
no setter
value ↔ List<E>
The current value using this signal's tracked read semantics.
getter/setter pairinherited
wait → Future<List<T>>

Available on Iterable<Future<T>>, provided by the FutureIterable extension

Waits for futures in parallel.
no setter

Methods

add(E value) → void
Appends value and notifies subscribers.
inherited
addAll(Iterable<E> iterable) → void
Appends all elements from iterable and notifies when length increases.
inherited
any(bool test(E element)) → bool
Checks whether any element of this iterable satisfies test.
inherited
asMap() → Map<int, E>
An unmodifiable Map view of this list.
inherited
asNameMap() → Map<String, T>

Available on Iterable<T>, provided by the EnumByName extension

Creates a map from the names of enum values to the values.
byName(String name) → T

Available on Iterable<T>, provided by the EnumByName extension

Finds the enum value in this list with name name.
cast<R>() → List<R>
Returns a view of this list as a list of R instances.
inherited
clear() → void
Removes every element and notifies when the list was not already empty.
inherited
contains(Object? element) → bool
Whether the collection contains an element equal to element.
inherited
dispose() → void
Disposes this signal and removes it from future propagation.
inherited
elementAt(int index) → E
Returns the indexth element.
inherited
elementAtOrNull(int index) → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The element at position index of this iterable, or null.
every(bool test(E element)) → bool
Checks whether every element of this iterable satisfies test.
inherited
expand<R>(Iterable<R> toElements(E element)) → Iterable<R>
Expands each element of this Iterable into zero or more elements.
inherited
fillRange(int start, int end, [E? fill]) → void
Fills the range [start, end) with fill and notifies when any slot changes.
inherited
firstWhere(bool test(E element), {E orElse()?}) → E
The first element that satisfies the given predicate test.
inherited
fold<R>(R initialValue, R combine(R previousValue, E element)) → R
Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
inherited
followedBy(Iterable<E> other) → Iterable<E>
Creates the lazy concatenation of this iterable and other.
inherited
forEach(void action(E value)) → void
Invokes action on each element of this iterable in iteration order.
inherited
getRange(int start, int end) → Iterable<E>
Creates an Iterable that iterates over a range of elements.
inherited
indexOf(Object? element, [int start = 0]) → int
The first index of element in this list.
inherited
indexWhere(bool test(E element), [int start = 0]) → int
The first index in the list that satisfies the provided test.
inherited
insert(int index, E element) → void
Inserts element at index and notifies subscribers.
inherited
insertAll(int index, Iterable<E> iterable) → void
Inserts all elements of iterable at index and notifies when length grows.
inherited
join([String separator = ""]) → String
Converts each element to a String and concatenates the strings.
inherited
lastIndexOf(Object? element, [int? start]) → int
The last index of element in this list.
inherited
lastIndexWhere(bool test(E element), [int? start]) → int
The last index in the list that satisfies the provided test.
inherited
lastWhere(bool test(E element), {E orElse()?}) → E
The last element that satisfies the given predicate test.
inherited
map<T>(T f(E element)) → Iterable<T>
The current elements of this iterable modified by toElement.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notify() → void
Notifies dependents without writing a new value.
inherited
reduce(E combine(E value, E element)) → E
Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
inherited
remove(Object? value) → bool
Removes the first occurrence of value and notifies when length shrinks.
inherited
removeAt(int index) → E
Removes the element at index and notifies subscribers.
inherited
removeLast() → E
Removes the last element and notifies subscribers.
inherited
removeRange(int start, int end) → void
Removes the range [start, end) and notifies when length shrinks.
inherited
removeWhere(bool test(E element)) → void
Removes elements matching test and notifies when length shrinks.
inherited
replaceRange(int start, int end, Iterable<E> replacements) → void
Replaces [start, end) with replacements and notifies when content changes.
inherited
retainWhere(bool test(E element)) → void
Keeps only elements matching test and notifies when length shrinks.
inherited
setAll(int index, Iterable<E> iterable) → void
Overwrites elements from index with iterable and notifies on change.
inherited
setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) → void
Writes iterable into [start, end) and notifies when values differ.
inherited
shuffle([Random? random]) → void
Shuffles elements in place and notifies when the list is not empty.
inherited
singleWhere(bool test(E element), {E orElse()?}) → E
The single element that satisfies test.
inherited
skip(int count) → Iterable<E>
Creates an Iterable that provides all but the first count elements.
inherited
skipWhile(bool test(E element)) → Iterable<E>
Creates an Iterable that skips leading elements while test is satisfied.
inherited
sort([int compare(E a, E b)?]) → void
Sorts elements in place and notifies when the list is not empty.
inherited
sublist(int start, [int? end]) → List<E>
Returns a new list containing the elements between start and end.
inherited
take(int count) → Iterable<E>
Creates a lazy iterable of the count first elements of this iterable.
inherited
takeWhile(bool test(E element)) → Iterable<E>
Creates a lazy iterable of the leading elements satisfying test.
inherited
toList({bool growable = true}) → List<E>
Creates a List containing the elements of this Iterable.
inherited
toSet() → Set<E>
Creates a Set containing the same elements as this iterable.
inherited
toString() → String
A string representation of this object.
inherited
where(bool test(E element)) → Iterable<E>
Creates a new lazy Iterable with all elements that satisfy the predicate test.
inherited
whereType<T>() → Iterable<T>
Creates a new lazy Iterable with all elements that have type T.
inherited

Operators

operator +(List<E> other) → List<E>
Returns the concatenation of this list and other.
inherited
operator ==(Object other) → bool
The equality operator.
inherited
operator [](int index) → E
The object at the given index in the list.
inherited
operator []=(int index, E value) → void
Replaces the element at index and notifies when the value changes.
inherited